From 20d7232a291271e50056f74422ee45636f80ff38 Mon Sep 17 00:00:00 2001 From: SKP Date: Sun, 10 Nov 2019 23:08:36 +0100 Subject: [PATCH 01/12] Restructure for cna tool --- sparkwallet/app.json | 7 +++++++ sparkwallet/isCoreApp | 0 sparkwallet/versions/0.2.2/candidate.json | 21 +++++++++++++++++++ sparkwallet/{ => versions/0.2.2}/cookie | 0 .../{ => versions/0.2.2}/docker-compose.yaml | 0 sparkwallet/{ => versions/0.2.2}/test.sh | 0 welcome/app.json | 7 +++++++ welcome/isCoreApp | 0 welcome/versions/0.2.2/candidate.json | 8 +++++++ welcome/{ => versions/0.2.2}/config.toml | 0 .../{ => versions/0.2.2}/docker-compose.yaml | 0 welcome/{ => versions/0.2.2}/test.sh | 0 12 files changed, 43 insertions(+) create mode 100644 sparkwallet/app.json delete mode 100644 sparkwallet/isCoreApp create mode 100644 sparkwallet/versions/0.2.2/candidate.json rename sparkwallet/{ => versions/0.2.2}/cookie (100%) rename sparkwallet/{ => versions/0.2.2}/docker-compose.yaml (100%) rename sparkwallet/{ => versions/0.2.2}/test.sh (100%) create mode 100644 welcome/app.json delete mode 100644 welcome/isCoreApp create mode 100644 welcome/versions/0.2.2/candidate.json rename welcome/{ => versions/0.2.2}/config.toml (100%) rename welcome/{ => versions/0.2.2}/docker-compose.yaml (100%) rename welcome/{ => versions/0.2.2}/test.sh (100%) diff --git a/sparkwallet/app.json b/sparkwallet/app.json new file mode 100644 index 0000000..5c27548 --- /dev/null +++ b/sparkwallet/app.json @@ -0,0 +1,7 @@ +{ + "label": "sparkwallet", + "name": "Spark wallet", + "url": "some url", + "email": "skp@skp.rocks", + "latest": "0.2.2" +} diff --git a/sparkwallet/isCoreApp b/sparkwallet/isCoreApp deleted file mode 100644 index e69de29..0000000 diff --git a/sparkwallet/versions/0.2.2/candidate.json b/sparkwallet/versions/0.2.2/candidate.json new file mode 100644 index 0000000..1ebf7ad --- /dev/null +++ b/sparkwallet/versions/0.2.2/candidate.json @@ -0,0 +1,21 @@ +{ + "dependencies": [ + { + "label": "api", + "version": "v0" + }, + { + "label": "bitcoin", + "version": "^0.18.0" + }, + { + "label": "lightning", + "version": "0.7.0" + } + ], + "files": [ + "cookie", + "docker-compose.yaml", + "test.sh" + ] +} diff --git a/sparkwallet/cookie b/sparkwallet/versions/0.2.2/cookie similarity index 100% rename from sparkwallet/cookie rename to sparkwallet/versions/0.2.2/cookie diff --git a/sparkwallet/docker-compose.yaml b/sparkwallet/versions/0.2.2/docker-compose.yaml similarity index 100% rename from sparkwallet/docker-compose.yaml rename to sparkwallet/versions/0.2.2/docker-compose.yaml diff --git a/sparkwallet/test.sh b/sparkwallet/versions/0.2.2/test.sh similarity index 100% rename from sparkwallet/test.sh rename to sparkwallet/versions/0.2.2/test.sh diff --git a/welcome/app.json b/welcome/app.json new file mode 100644 index 0000000..377b2fe --- /dev/null +++ b/welcome/app.json @@ -0,0 +1,7 @@ +{ + "label": "welcome", + "name": "The Welcome App", + "url": "some url", + "email": "skp@skp.rocks", + "latest": "0.2.2" +} diff --git a/welcome/isCoreApp b/welcome/isCoreApp deleted file mode 100644 index e69de29..0000000 diff --git a/welcome/versions/0.2.2/candidate.json b/welcome/versions/0.2.2/candidate.json new file mode 100644 index 0000000..b6b1cf5 --- /dev/null +++ b/welcome/versions/0.2.2/candidate.json @@ -0,0 +1,8 @@ +{ + "dependencies": [], + "files": [ + "config.toml", + "docker-compose.yaml", + "test.sh" + ] +} diff --git a/welcome/config.toml b/welcome/versions/0.2.2/config.toml similarity index 100% rename from welcome/config.toml rename to welcome/versions/0.2.2/config.toml diff --git a/welcome/docker-compose.yaml b/welcome/versions/0.2.2/docker-compose.yaml similarity index 100% rename from welcome/docker-compose.yaml rename to welcome/versions/0.2.2/docker-compose.yaml diff --git a/welcome/test.sh b/welcome/versions/0.2.2/test.sh similarity index 100% rename from welcome/test.sh rename to welcome/versions/0.2.2/test.sh From 733a3407bb81ceafa8057ef8851ff7170e2d496b Mon Sep 17 00:00:00 2001 From: SKP Date: Thu, 14 Nov 2019 20:58:26 +0100 Subject: [PATCH 02/12] Added version to candidates --- sparkwallet/versions/0.2.2/candidate.json | 1 + welcome/versions/0.2.2/candidate.json | 1 + 2 files changed, 2 insertions(+) diff --git a/sparkwallet/versions/0.2.2/candidate.json b/sparkwallet/versions/0.2.2/candidate.json index 1ebf7ad..5e81f73 100644 --- a/sparkwallet/versions/0.2.2/candidate.json +++ b/sparkwallet/versions/0.2.2/candidate.json @@ -1,4 +1,5 @@ { + "version": "0.2.2", "dependencies": [ { "label": "api", diff --git a/welcome/versions/0.2.2/candidate.json b/welcome/versions/0.2.2/candidate.json index b6b1cf5..1234cdb 100644 --- a/welcome/versions/0.2.2/candidate.json +++ b/welcome/versions/0.2.2/candidate.json @@ -1,4 +1,5 @@ { + "version": "0.2.2", "dependencies": [], "files": [ "config.toml", From 0998f7ce5fd7b926638d195001e6f608f078e5ee Mon Sep 17 00:00:00 2001 From: SKP Date: Sun, 17 Nov 2019 14:45:14 +0100 Subject: [PATCH 03/12] Changed environment to match new installation process --- sparkwallet/versions/0.2.2/docker-compose.yaml | 5 ++--- welcome/versions/0.2.2/docker-compose.yaml | 6 ++---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/sparkwallet/versions/0.2.2/docker-compose.yaml b/sparkwallet/versions/0.2.2/docker-compose.yaml index ac06c26..3f93cd5 100644 --- a/sparkwallet/versions/0.2.2/docker-compose.yaml +++ b/sparkwallet/versions/0.2.2/docker-compose.yaml @@ -5,9 +5,8 @@ services: command: --no-tls image: cyphernode/sparkwallet:v0.2.8 volumes: - - "$LIGHTNING_DATAPATH/:/etc/lightning" - - "$APP_SCRIPT_PATH/cookie:/data/spark/cookie" - - "$GATEKEEPER_DATAPATH/htpasswd:/htpasswd/htpasswd" + - "$CLIGHTNING_RPC_SOCKET:/etc/lightning/lightning-rpc" + - "$APP_DATA/cookie:/data/spark/cookie" labels: - "traefik.docker.network=cyphernodeappsnet" - "traefik.frontend.redirect.regex=^(.*)/sparkwallet$$" diff --git a/welcome/versions/0.2.2/docker-compose.yaml b/welcome/versions/0.2.2/docker-compose.yaml index 07ab41c..673c91d 100644 --- a/welcome/versions/0.2.2/docker-compose.yaml +++ b/welcome/versions/0.2.2/docker-compose.yaml @@ -7,10 +7,8 @@ services: - "CYPHERNODE_URL=https://gatekeeper:${GATEKEEPER_PORT}" image: cyphernode/app_welcome:v0.2.2 volumes: - - "$GATEKEEPER_DATAPATH/certs/cert.pem:/data/cert.pem" - - "$GATEKEEPER_DATAPATH/keys.properties:/data/keys.properties" - - "$APP_SCRIPT_PATH/config.toml:/data/config.toml" - - "$GATEKEEPER_DATAPATH/htpasswd:/htpasswd/htpasswd" + - "$GATEKEEPER_CERT_FILE:/data/cert.pem" + - "$APP_DATA/config.toml:/data/config.toml" networks: - cyphernodeappsnet restart: always From a015bd1e7c1f5af10d45b8e1128c20571462a32a Mon Sep 17 00:00:00 2001 From: SKP Date: Mon, 18 Nov 2019 20:00:22 +0100 Subject: [PATCH 04/12] Fixed dependencies in spark wallet app --- sparkwallet/versions/0.2.2/candidate.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sparkwallet/versions/0.2.2/candidate.json b/sparkwallet/versions/0.2.2/candidate.json index 5e81f73..9b6aded 100644 --- a/sparkwallet/versions/0.2.2/candidate.json +++ b/sparkwallet/versions/0.2.2/candidate.json @@ -7,11 +7,11 @@ }, { "label": "bitcoin", - "version": "^0.18.0" + "version": "~0.18.0" }, { "label": "lightning", - "version": "0.7.0" + "version": "~0.7.0" } ], "files": [ From 441dabfbd02cf5660df16bc7fa385de99a50a1b1 Mon Sep 17 00:00:00 2001 From: SKP Date: Sat, 23 Nov 2019 12:56:04 +0100 Subject: [PATCH 05/12] Fixed environment --- sparkwallet/versions/0.2.2/docker-compose.yaml | 2 +- welcome/versions/0.2.2/docker-compose.yaml | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/sparkwallet/versions/0.2.2/docker-compose.yaml b/sparkwallet/versions/0.2.2/docker-compose.yaml index 3f93cd5..279a787 100644 --- a/sparkwallet/versions/0.2.2/docker-compose.yaml +++ b/sparkwallet/versions/0.2.2/docker-compose.yaml @@ -5,7 +5,7 @@ services: command: --no-tls image: cyphernode/sparkwallet:v0.2.8 volumes: - - "$CLIGHTNING_RPC_SOCKET:/etc/lightning/lightning-rpc" + - "$CLIGHTNING_RPC_PATH:/etc/lightning" - "$APP_DATA/cookie:/data/spark/cookie" labels: - "traefik.docker.network=cyphernodeappsnet" diff --git a/welcome/versions/0.2.2/docker-compose.yaml b/welcome/versions/0.2.2/docker-compose.yaml index 673c91d..2603d76 100644 --- a/welcome/versions/0.2.2/docker-compose.yaml +++ b/welcome/versions/0.2.2/docker-compose.yaml @@ -3,12 +3,14 @@ version: "3" services: cyphernode_welcome: environment: - - "TRACING=1" - - "CYPHERNODE_URL=https://gatekeeper:${GATEKEEPER_PORT}" + - "CYPHERNODE_URL=$GATEKEEPER_URL" + - "CYPHERNODE_CERT=/certs/cert.pm" + - "APP_DESCRIPTION_FILE=/data/app.json" + - "CONFIG_FILE=/data/config.toml" image: cyphernode/app_welcome:v0.2.2 volumes: - - "$GATEKEEPER_CERT_FILE:/data/cert.pem" - - "$APP_DATA/config.toml:/data/config.toml" + - "$GATEKEEPER_CERTS_PATH:/certs" + - "$APP_DATA:/data" networks: - cyphernodeappsnet restart: always From 696ca0e240077116d0a5dc2b1c5635c6f197f17a Mon Sep 17 00:00:00 2001 From: SKP Date: Sat, 23 Nov 2019 13:17:55 +0100 Subject: [PATCH 06/12] Fixed typo --- welcome/versions/0.2.2/docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/welcome/versions/0.2.2/docker-compose.yaml b/welcome/versions/0.2.2/docker-compose.yaml index 2603d76..74951bb 100644 --- a/welcome/versions/0.2.2/docker-compose.yaml +++ b/welcome/versions/0.2.2/docker-compose.yaml @@ -4,7 +4,7 @@ services: cyphernode_welcome: environment: - "CYPHERNODE_URL=$GATEKEEPER_URL" - - "CYPHERNODE_CERT=/certs/cert.pm" + - "CYPHERNODE_CERT=/certs/cert.pem" - "APP_DESCRIPTION_FILE=/data/app.json" - "CONFIG_FILE=/data/config.toml" image: cyphernode/app_welcome:v0.2.2 From 100740d3d81a8545fbb034966cb782872520851d Mon Sep 17 00:00:00 2001 From: SKP Date: Sat, 23 Nov 2019 13:37:48 +0100 Subject: [PATCH 07/12] Added unsafe path to complete lightning directory --- sparkwallet/versions/0.2.2/docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sparkwallet/versions/0.2.2/docker-compose.yaml b/sparkwallet/versions/0.2.2/docker-compose.yaml index 279a787..317fd82 100644 --- a/sparkwallet/versions/0.2.2/docker-compose.yaml +++ b/sparkwallet/versions/0.2.2/docker-compose.yaml @@ -5,7 +5,7 @@ services: command: --no-tls image: cyphernode/sparkwallet:v0.2.8 volumes: - - "$CLIGHTNING_RPC_PATH:/etc/lightning" + - "$UNSAFE__CLIGHTNING_PATH:/etc/lightning" - "$APP_DATA/cookie:/data/spark/cookie" labels: - "traefik.docker.network=cyphernodeappsnet" From 6cd5be3d4df380e0a59861a8b425bef5a988fa12 Mon Sep 17 00:00:00 2001 From: SKP Date: Thu, 28 Nov 2019 21:22:57 +0100 Subject: [PATCH 08/12] Docker-compose files are now templates, added authorisation field to candidate.json --- sparkwallet/versions/0.2.2/candidate.json | 38 ++++++++++++++++- .../versions/0.2.2/docker-compose.yaml | 17 +++++++- welcome/versions/0.2.2/candidate.json | 41 ++++++++++++++++++- welcome/versions/0.2.2/docker-compose.yaml | 16 +++++++- 4 files changed, 108 insertions(+), 4 deletions(-) diff --git a/sparkwallet/versions/0.2.2/candidate.json b/sparkwallet/versions/0.2.2/candidate.json index 9b6aded..f0be867 100644 --- a/sparkwallet/versions/0.2.2/candidate.json +++ b/sparkwallet/versions/0.2.2/candidate.json @@ -18,5 +18,41 @@ "cookie", "docker-compose.yaml", "test.sh" - ] + ], + "authorization": { + "roles": [ + { + "name": "user", + "description": "regular user", + "autoAssign": true + }, + { + "name": "admin", + "description": "admin", + "autoAssign": false + } + ], + "acp": [ + { + "id": "policies:policy:by:role:user", + "description": "Allow gets for every resource", + "subjects": ["user"], + "effect": "allow", + "resources": [ + "/*" + ], + "actions": ["get"] + }, + { + "id": "policies:policy:by:role:admin", + "description": "Allow admin access to every resource.", + "subjects": ["admin"], + "effect": "allow", + "resources": [ + "/*" + ], + "actions": ["get", "post", "put", "delete"] + } + ] + } } diff --git a/sparkwallet/versions/0.2.2/docker-compose.yaml b/sparkwallet/versions/0.2.2/docker-compose.yaml index 317fd82..fa985e0 100644 --- a/sparkwallet/versions/0.2.2/docker-compose.yaml +++ b/sparkwallet/versions/0.2.2/docker-compose.yaml @@ -1,7 +1,19 @@ version: "3" +# <%= APP_UPSTREAM_HOST %>: Hostname for the upstream into cyphernodes reverse proxy to expose the app to the world +# <%= APP_ID %> use this to avoid conflicts in hostname in case you have multiple services in your app +# if you need those values inside your app, you can pass them in the environment +# container names will be ignored +# Prefix all container names you use with the <%= APP_ID %> to prevent unwanted namespace collision +# between apps. It's very likely if you use a database like redis or mongo that you will name this +# container 'mongo' or 'redis' like every other app developer, so there will be container name +# collisions. Consider using '<%= APP_ID %>_redis' or '<%= APP_ID %>_mongo' instead. +# container names will be checked and if they don't contain the unique part, the app won't be +# able to be installed + services: - cyphernode_sparkwallet: + # This is the container which will be used as the reverse proxy upstream + <%= APP_UPSTREAM_HOST %>: command: --no-tls image: cyphernode/sparkwallet:v0.2.8 volumes: @@ -17,6 +29,9 @@ services: - "traefik.frontend.headers.customRequestHeaders=X-Access:FoeDdQw5yl7pPfqdlGy3OEk/txGqyJjSbVtffhzs7kc=" - "traefik.enable=true" - "traefik.port=9737" + environment: + - "APP_UPSTREAM_HOST=<%= APP_UPSTREAM_HOST %>" + - "APP_ID=<%= APP_ID %>" networks: - cyphernodeappsnet restart: always diff --git a/welcome/versions/0.2.2/candidate.json b/welcome/versions/0.2.2/candidate.json index 1234cdb..f3531a3 100644 --- a/welcome/versions/0.2.2/candidate.json +++ b/welcome/versions/0.2.2/candidate.json @@ -5,5 +5,44 @@ "config.toml", "docker-compose.yaml", "test.sh" - ] + ], + "authorization": { + "roles": [ + { + "name": "user", + "description": "regular user", + "autoAssign": true + }, + { + "name": "admin", + "description": "admin", + "autoAssign": false + } + ], + "acp": [ + { + "id": "policies:policy:by:role:user", + "description": "Allow gets for every resource", + "subjects": ["user"], + "effect": "allow", + "resources": [ + "/*" + ], + "actions": ["get"] + }, + { + "id": "policies:policy:by:role:admin", + "description": "Allow admin access to every resource.", + "subjects": ["admin"], + "effect": "allow", + "resources": [ + "/*" + ], + "actions": ["get", "post", "put", "delete"] + } + ] + } } + + + diff --git a/welcome/versions/0.2.2/docker-compose.yaml b/welcome/versions/0.2.2/docker-compose.yaml index 74951bb..bec96fd 100644 --- a/welcome/versions/0.2.2/docker-compose.yaml +++ b/welcome/versions/0.2.2/docker-compose.yaml @@ -1,12 +1,26 @@ version: "3" +# <%= APP_UPSTREAM_HOST %>: Hostname for the upstream into cyphernodes reverse proxy to expose the app to the world +# <%= APP_ID %> use this to avoid conflicts in hostname in case you have multiple services in your app +# if you need those values inside your app, you can pass them in the environment +# container names will be ignored +# Prefix all container names you use with the <%= APP_ID %> to prevent unwanted namespace collision +# between apps. It's very likely if you use a database like redis or mongo that you will name this +# container 'mongo' or 'redis' like every other app developer, so there will be container name +# collisions. Consider using '<%= APP_ID %>_redis' or '<%= APP_ID %>_mongo' instead. +# container names will be checked and if they don't contain the unique part, the app won't be +# able to be installed + services: - cyphernode_welcome: + # This is the container which will be used as the reverse proxy upstream + <%= APP_UPSTREAM_HOST %>: environment: - "CYPHERNODE_URL=$GATEKEEPER_URL" - "CYPHERNODE_CERT=/certs/cert.pem" - "APP_DESCRIPTION_FILE=/data/app.json" - "CONFIG_FILE=/data/config.toml" + - "APP_UPSTREAM_HOST=<%= APP_UPSTREAM_HOST %>" + - "APP_ID=<%= APP_ID %>" image: cyphernode/app_welcome:v0.2.2 volumes: - "$GATEKEEPER_CERTS_PATH:/certs" From 2a6bf28e25b9995eb8e264f9b6421dd3a7897231 Mon Sep 17 00:00:00 2001 From: SKP Date: Fri, 29 Nov 2019 00:34:30 +0100 Subject: [PATCH 09/12] Added port to app configuration --- sparkwallet/versions/0.2.2/candidate.json | 1 + welcome/versions/0.2.2/candidate.json | 1 + 2 files changed, 2 insertions(+) diff --git a/sparkwallet/versions/0.2.2/candidate.json b/sparkwallet/versions/0.2.2/candidate.json index f0be867..0979467 100644 --- a/sparkwallet/versions/0.2.2/candidate.json +++ b/sparkwallet/versions/0.2.2/candidate.json @@ -19,6 +19,7 @@ "docker-compose.yaml", "test.sh" ], + "port": 9737, "authorization": { "roles": [ { diff --git a/welcome/versions/0.2.2/candidate.json b/welcome/versions/0.2.2/candidate.json index f3531a3..6e46fc0 100644 --- a/welcome/versions/0.2.2/candidate.json +++ b/welcome/versions/0.2.2/candidate.json @@ -6,6 +6,7 @@ "docker-compose.yaml", "test.sh" ], + "port": 8080, "authorization": { "roles": [ { From 6d3731bb575c49e7ebee5aa6ba604e8f528296c7 Mon Sep 17 00:00:00 2001 From: SKP Date: Mon, 2 Dec 2019 21:03:52 +0100 Subject: [PATCH 10/12] Added isExposed fields --- sparkwallet/versions/0.2.2/candidate.json | 1 + welcome/versions/0.2.2/candidate.json | 1 + 2 files changed, 2 insertions(+) diff --git a/sparkwallet/versions/0.2.2/candidate.json b/sparkwallet/versions/0.2.2/candidate.json index 0979467..9ddc4fe 100644 --- a/sparkwallet/versions/0.2.2/candidate.json +++ b/sparkwallet/versions/0.2.2/candidate.json @@ -19,6 +19,7 @@ "docker-compose.yaml", "test.sh" ], + "isExposed":true, "port": 9737, "authorization": { "roles": [ diff --git a/welcome/versions/0.2.2/candidate.json b/welcome/versions/0.2.2/candidate.json index 6e46fc0..57fab46 100644 --- a/welcome/versions/0.2.2/candidate.json +++ b/welcome/versions/0.2.2/candidate.json @@ -6,6 +6,7 @@ "docker-compose.yaml", "test.sh" ], + "isExposed":true, "port": 8080, "authorization": { "roles": [ From a78de83e41ad944b3b8afa114126c3f5c269488c Mon Sep 17 00:00:00 2001 From: SKP Date: Tue, 17 Dec 2019 13:29:26 +0100 Subject: [PATCH 11/12] Added default mount point --- sparkwallet/app.json | 3 ++- welcome/app.json | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/sparkwallet/app.json b/sparkwallet/app.json index 5c27548..34bd28f 100644 --- a/sparkwallet/app.json +++ b/sparkwallet/app.json @@ -3,5 +3,6 @@ "name": "Spark wallet", "url": "some url", "email": "skp@skp.rocks", - "latest": "0.2.2" + "latest": "0.2.2", + "defaultMountPoint": "/sparkwallet" } diff --git a/welcome/app.json b/welcome/app.json index 377b2fe..0ff4606 100644 --- a/welcome/app.json +++ b/welcome/app.json @@ -3,5 +3,6 @@ "name": "The Welcome App", "url": "some url", "email": "skp@skp.rocks", - "latest": "0.2.2" + "latest": "0.2.2", + "defaultMountPoint": "/welcome" } From 1b7bc2b08907333a23486082b847f4abf96c3724 Mon Sep 17 00:00:00 2001 From: SKP Date: Tue, 17 Dec 2019 17:30:49 +0100 Subject: [PATCH 12/12] defaultMountPoint is no longer a path --- sparkwallet/app.json | 2 +- welcome/app.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sparkwallet/app.json b/sparkwallet/app.json index 34bd28f..939564b 100644 --- a/sparkwallet/app.json +++ b/sparkwallet/app.json @@ -4,5 +4,5 @@ "url": "some url", "email": "skp@skp.rocks", "latest": "0.2.2", - "defaultMountPoint": "/sparkwallet" + "defaultMountPoint": "sparkwallet" } diff --git a/welcome/app.json b/welcome/app.json index 0ff4606..57ccfe8 100644 --- a/welcome/app.json +++ b/welcome/app.json @@ -4,5 +4,5 @@ "url": "some url", "email": "skp@skp.rocks", "latest": "0.2.2", - "defaultMountPoint": "/welcome" + "defaultMountPoint": "welcome" }