Skip to content

Commit

Permalink
Merge branch 'release/24.01.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
myrho committed Jan 19, 2024
2 parents 9bf4dea + a2889bb commit c9ffcb8
Show file tree
Hide file tree
Showing 210 changed files with 6,299 additions and 5,300 deletions.
20 changes: 20 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Build the dashboard

on:
workflow_dispatch:
push:

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: '18.x'
- run: npm ci
- run: cp config/Config.elm.tmp config/Config.elm
- run: npm run build --if-present
13 changes: 7 additions & 6 deletions .github/workflows/github-packages-publish.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
name: Docker
name: Publish to Github Docker Hub

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

on:
# schedule:
# - cron: '38 1 * * *'
workflow_dispatch:
push:
branches: [ "master", "develop"]
# branches: [ "master" ]
# Publish semver tags as releases.
# tags: [ 'v*.*.*' ]
tags: [ 'v*.*.*' ]
# pull_request:
# branches: [ "master" ]
# branches: [ "master" ]

env:
# Use docker.io for Docker Hub if empty
Expand All @@ -25,7 +27,6 @@ jobs:
build:

runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
permissions:
contents: read
packages: write
Expand Down Expand Up @@ -95,4 +96,4 @@ jobs:
DIGEST: ${{ steps.build-and-push.outputs.digest }}
# This step uses the identity token to provision an ephemeral certificate
# against the sigstore community Fulcio instance.
run: echo "${TAGS}" | xargs -I {} cosign sign --yes {}@${DIGEST}
run: echo "${TAGS}" | xargs -I {} cosign sign --yes {}@${DIGEST}
31 changes: 31 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Create release

on:
workflow_dispatch:
push:
tags:
- v[0-9]+.[0-9]+.[0-9]+

permissions:
contents: write

jobs:
release:
name: Release pushed tag
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Filter CHANGELOG
run: |
sed '1,/## \[/d;/## \[/Q' CHANGELOG.md > CHANGELOG_LATEST.md
- name: Create release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ github.ref_name }}
run: |
gh release create "${{ github.ref_name }}" \
--repo="$GITHUB_REPOSITORY" \
--title="${GITHUB_REPOSITORY#*/} ${tag#v}" \
-F CHANGELOG_LATEST.md \
--generate-notes
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ dist
tags
ctags_exclude
.env
.env.*
test/*.gs
elm-stuff
.parcel-cache
Expand Down
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,36 @@ All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

## [24.01.0] - 2024-01-10
### Added
- beta support for the tron currency ([382](https://github.com/graphsense/graphsense-dashboard/issues/382))
- added supported tokens on statistic page ([382](https://github.com/graphsense/graphsense-dashboard/issues/382))
- added support for missing current exchange rates (for sync states before exchange rates where avail.)
- Allow for opening a node in new browser tab ([426](https://github.com/graphsense/graphsense-dashboard/issues/426))
- new setting to filter zero value transactions (often smart contract calls in ethereum)
- Italian translation
- add option to open address in new tab ([426](https://github.com/graphsense/graphsense-dashboard/issues/426))
### Changed
- improved viewport centering when adding new nodes to the graph ([421](https://github.com/graphsense/graphsense-dashboard/issues/421))
- keep browser table open when switching nodes ([422](https://github.com/graphsense/graphsense-dashboard/issues/422))
- improved display for nodes/edges with multi-currency transaction (token transaction) ([377](https://github.com/graphsense/graphsense-dashboard/issues/377))
- improved placing of popup dialogs ([407](https://github.com/graphsense/graphsense-dashboard/issues/407))
- open user profile on click only (instead of hovering)
- upgrade docker image to alpine:3.19
- add new color to highlighter on picking instead of updating existing coloring ([419](https://github.com/graphsense/graphsense-dashboard/issues/419))
### Fixed
- skip existing entities in path search ([429](https://github.com/graphsense/graphsense-dashboard/issues/429))
- Language settings get lost after login ([427](https://github.com/graphsense/graphsense-dashboard/issues/427))
- search parameter editable via keyboard ([428](https://github.com/graphsense/graphsense-dashboard/issues/428))
- fixed multiline node labels ([416](https://github.com/graphsense/graphsense-dashboard/issues/416))
- fix positioning of contextmenu, ([424](https://github.com/graphsense/graphsense-dashboard/issues/424))
- add total received address label type in graph configuration ([438](https://github.com/graphsense/graphsense-dashboard/issues/438))
- add history entries on url change ([431](https://github.com/graphsense/graphsense-dashboard/issues/431))
- preserve graph url when switching to other tab via sidebar ([403](https://github.com/graphsense/graphsense-dashboard/issues/403))
- also keep highlight color trashing in history ([434](https://github.com/graphsense/graphsense-dashboard/issues/434))
- allow changing search params with keyboard ([428](https://github.com/graphsense/graphsense-dashboard/issues/428))
- preserve propertybox table when switching things ([422](https://github.com/graphsense/graphsense-dashboard/issues/422))

## [23.09] - 2023-09-20
### Added
- new more user friendly landing page, statistics is now found in the left menu
Expand All @@ -11,6 +41,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Api key field is now type password to enhance pw-manager integration [#409](https://github.com/graphsense/graphsense-dashboard/issues/409)
- Add links to blockexplorer on tx views [#381](https://github.com/graphsense/graphsense-dashboard/issues/381)
- Added context menu options to property boxes [#353](https://github.com/graphsense/graphsense-dashboard/issues/353)

### Changes
- improved handling plugin handling and code generation
- clear search after item was selected [#410](https://github.com/graphsense/graphsense-dashboard/issues/410)
Expand Down
29 changes: 17 additions & 12 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
FROM alpine:3.16
LABEL maintainer="[email protected]"
FROM alpine:3.19
LABEL org.opencontainers.image.title="graphsense-dashboard"
LABEL org.opencontainers.image.maintainer="[email protected]"
LABEL org.opencontainers.image.url="https://www.ikna.io/"
LABEL org.opencontainers.image.description="GraphSense's Web GUI for interactive cryptocurrency analysis written"
LABEL org.opencontainers.image.source="https://github.com/graphsense/graphsense-dashboard"

ENV DOCKER_USER=user
ARG DOCKER_UID=1000
ENV DOCKER_USER=dockeruser
ENV DOCKER_UID=1000
ENV REST_URL=http://localhost:9000

RUN addgroup -S $DOCKER_USER && adduser -S $DOCKER_USER -G $DOCKER_USER -u $DOCKER_UID
#RUN addgroup -S $DOCKER_USER && adduser -S $DOCKER_USER -G $DOCKER_USER -u $DOCKER_UID

ENV WORKDIR=/app

Expand All @@ -14,30 +19,30 @@ RUN mkdir $WORKDIR && \


WORKDIR $WORKDIR
COPY ./docker/docker-entrypoint.sh /
RUN chmod +x /docker-entrypoint.sh

COPY ./elm.json.base ./elm-tooling.json ./index.html ./package*.json ./vite.config.js $WORKDIR/

COPY ./config $WORKDIR/config
RUN cp $WORKDIR/config/Config.elm.tmp $WORKDIR/config/Config.elm
COPY ./src $WORKDIR/src
COPY ./openapi $WORKDIR/openapi
COPY ./public $WORKDIR/public
COPY ./lang $WORKDIR/lang
COPY ./plugins $WORKDIR/plugins
COPY ./plugin_templates $WORKDIR/plugin_templates
COPY ./themes $WORKDIR/themes
COPY ./lib $WORKDIR/lib
COPY ./docker/site.conf /etc/nginx/http.d/
COPY ./generate.js $WORKDIR/generate.js

RUN chown -R $DOCKER_USER $WORKDIR && \
mkdir -p /usr/share/nginx/html /run/nginx && \
chown -R $DOCKER_USER /usr/share/nginx/html && \
RUN mkdir -p /usr/share/nginx/html /run/nginx && \
rm -f /etc/nginx/http.d/default.conf

USER $DOCKER_USER
RUN npm install

COPY ./docker/docker-entrypoint.sh /
RUN chmod +x /docker-entrypoint.sh

ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["nginx", "-g", "daemon off;"]
CMD ["nginx", "-g", "pid /tmp/nginx.pid;daemon off;"]
EXPOSE 8000
11 changes: 10 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,16 @@ serve:
test:
npx elm-test

build:
npm run build

build-docker:
docker build . -t graphsense-dashboard

serve-docker: build-docker
docker run -it --network='host' -e REST_URL=http://localhost:9000 localhost/graphsense-dashboard:latest

format:
npx elm-format --yes src

.PHONY: openapi serve test format
.PHONY: openapi serve test format build build-docker serve-docker
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# GraphSense Dashboard

A web dashboard for interactive cryptocurrency analysis.
GraphSense's Web GUI for interactive cryptocurrency analysis written in [Elm](https://elm-lang.org).

## Configuration

Expand Down
9 changes: 7 additions & 2 deletions docker/docker-entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,17 @@
set -e

for plugin in `find ./plugins -mindepth 1 -maxdepth 1 -type d`; do
cd $WORKDIR/$plugin
cd ./$plugin
npm install
cd -
done

npm run build && cp -r $WORKDIR/dist/* /usr/share/nginx/html/
npm run build && cp -r ./dist/* /usr/share/nginx/html/

# remove node_modules to save image space
find ./plugins -name node_modules -exec rm -rf {} \; || true

chown -R $DOCKER_UID /usr/share/nginx/html/*

sed -i "s|http://localhost:9000|$REST_URL|g" /usr/share/nginx/html/assets/index.*.js

Expand Down
3 changes: 2 additions & 1 deletion docker/site.conf
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ server {
location = / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files /index.html;
try_files /index.html /dev/null =404;
}

location / {
root /usr/share/nginx/html;
Expand Down
47 changes: 15 additions & 32 deletions elm.json.base
Original file line number Diff line number Diff line change
Expand Up @@ -13,80 +13,63 @@
"dependencies": {
"direct": {
"BrianHicks/elm-csv": "3.0.3",
"FabienHenon/elm-infinite-list-view": "3.2.0",
"NoRedInk/elm-json-decode-pipeline": "1.0.1",
"PanagiotisGeorgiadis/elm-datetime": "1.3.0",
"TSFoster/elm-tuple-extra": "2.0.0",
"Warry/elm-css-sortable-table": "1.0.0",
"abadi199/elm-input-extra": "5.2.6",
"andre-dietrich/elm-conditional": "1.0.0",
"arturopala/elm-monocle": "2.2.0",
"avh4/elm-color": "1.0.0",
"avh4/elm-fifo": "1.0.4",
"avh4/elm-program-test": "3.7.0",
"billstclair/elm-sha256": "1.0.9",
"cuducos/elm-format-number": "9.0.1",
"danyx23/elm-uuid": "2.1.2",
"dillonkearns/elm-graphql": "5.0.10",
"elm/browser": "1.0.2",
"elm/bytes": "1.0.8",
"elm/core": "1.0.5",
"elm/file": "1.0.5",
"elm/html": "1.0.0",
"elm/http": "2.0.0",
"elm/json": "1.1.3",
"elm/parser": "1.1.0",
"elm/regex": "1.0.0",
"elm/svg": "1.0.1",
"elm/time": "1.0.0",
"elm/url": "1.0.0",
"elm-community/basics-extra": "4.1.0",
"elm-community/easing-functions": "2.0.0",
"elm-community/html-extra": "3.4.0",
"elm-community/intdict": "3.0.0",
"elm-community/json-extra": "4.3.0",
"elm-community/list-extra": "8.6.0",
"elm-community/maybe-extra": "5.3.0",
"elm-community/result-extra": "2.4.0",
"elm-community/string-extra": "4.0.1",
"elm-explorations/test": "1.2.2",
"etaque/elm-form": "4.0.0",
"gregziegan/elm-font-awesome-5": "1.0.1",
"grotsev/elm-debouncer": "1.0.0",
"hecrj/html-parser": "2.4.0",
"hmsk/elm-vite-plugin-helper": "1.0.1",
"ianmackenzie/elm-geometry": "3.9.1",
"ianmackenzie/elm-units": "2.9.0",
"jasonliang-dev/elm-heroicons": "2.0.0",
"jzxhuang/http-extras": "2.1.0",
"jschomay/elm-bounded-number": "2.1.2",
"krisajenkins/remotedata": "6.0.1",
"lukewestby/elm-string-interpolate": "1.0.4",
"mgold/elm-nonempty-list": "4.2.0",
"myrho/elm-hovercard": "3.0.0",
"myrho/elm-hovercard": "4.0.0",
"myrho/numeral-elm": "1.0.1",
"myrho/yaml": "1.0.0",
"noahzgordon/elm-color-extra": "1.0.2",
"rtfeldman/elm-css": "16.1.1",
"rtfeldman/elm-hex": "1.0.0",
"rtfeldman/elm-iso8601-date-strings": "1.1.4",
"ryannhg/date-format": "2.3.0"
},
"indirect": {
"avh4/elm-fifo": "1.0.4",
"elm/bytes": "1.0.8",
"elm/parser": "1.1.0",
"elm/random": "1.0.0",
"elm/virtual-dom": "1.0.3",
"elm-explorations/test": "1.2.2",
"fredcy/elm-parseint": "2.0.1",
"ianmackenzie/elm-1d-parameter": "1.0.1",
"ianmackenzie/elm-float-extra": "1.1.0",
"ianmackenzie/elm-interval": "2.0.0",
"ianmackenzie/elm-triangular-mesh": "1.1.0",
"ianmackenzie/elm-units-interval": "2.3.0",
"j-maas/elm-ordered-containers": "1.0.0",
"jinjor/elm-diff": "1.0.6",
"hecrj/html-parser": "2.4.0",
"mgold/elm-nonempty-list": "4.2.0",
"myrho/elm-parser-extras": "1.0.1",
"myrho/elm-round": "1.0.5",
"rtfeldman/elm-hex": "1.0.0"
"myrho/elm-round": "1.0.5"
}
},
"test-dependencies": {
"direct": {},
"direct": {
"elm-community/result-extra": "2.4.0",
"elm-explorations/test": "1.2.2"
},
"indirect": {}
}
}
Loading

0 comments on commit c9ffcb8

Please sign in to comment.