From 9e29bf4fe7bef57c0d9543ae06465895008becd0 Mon Sep 17 00:00:00 2001 From: Hein Date: Thu, 19 Dec 2024 15:21:31 +0200 Subject: [PATCH 1/5] Add token generation tutorial --- images/tutorials/self-host/token.png | Bin 0 -> 84395 bytes mint.json | 5 +- tutorials/self-host/generate-dev-token.mdx | 64 +++++++++++++++++++++ tutorials/self-host/overview.mdx | 9 ++- 4 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 images/tutorials/self-host/token.png create mode 100644 tutorials/self-host/generate-dev-token.mdx diff --git a/images/tutorials/self-host/token.png b/images/tutorials/self-host/token.png new file mode 100644 index 0000000000000000000000000000000000000000..06e7cc9d0d7bd937964b24389bc9253c347f8833 GIT binary patch literal 84395 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 pyXUOi8G8(C~j#bsZn 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 literal 0 HcmV?d00001 diff --git a/mint.json b/mint.json index 59b0c272..a16ae3df 100644 --- a/mint.json +++ b/mint.json @@ -399,7 +399,10 @@ }, { "group": "Self Host", - "pages": ["tutorials/self-host/overview"] + "pages": [ + "tutorials/self-host/overview", + "tutorials/self-host/generate-dev-token" + ] }, { "group": "Resources", diff --git a/tutorials/self-host/generate-dev-token.mdx b/tutorials/self-host/generate-dev-token.mdx new file mode 100644 index 00000000..840df70b --- /dev/null +++ b/tutorials/self-host/generate-dev-token.mdx @@ -0,0 +1,64 @@ +--- +title: "Generate a Development Token" +description: "In this tutorial we will show you how to generate a development token for the self-hosted [PowerSync Service](https://powersync.mintlify.app/architecture/powersync-service#powersync-service)." +--- + + + + To generate a SharedSecret, you can use this [Online JWS key generator](https://8gwifi.org/jwsgen.jsp) + + You don't need to edit the default payload in the [Online JWS key generator](https://8gwifi.org/jwsgen.jsp). + You simply need a valid `SharedSecret` value. + + - Click `Generate JWS Keys` + - Copy the `SharedSecret` value + + + + + Update the following in your `powersync.yaml` config file with the `SharedSecret` value copied in the previous step: + - `k` value in your jwks keys, and + - api token + ```yaml powersync.yaml {8, 16} + # Client (application end user) authentication settings + client_auth: + # JWKS URIs can be specified here + jwks_uri: !env PS_JWKS_URL + jwks: + keys: + - kty: 'oct' + k: 'YOUR_GENERATED_SHARED_SECRET' + alg: 'HS256' + + audience: ["powersync-dev", "powersync", "http://localhost:8080"] + + api: + tokens: + # These tokens are used for local admin API route authentication + - YOUR_GENERATED_SHARED_SECRET + ``` + + + + 1. If you have not done so already, clone the [powersync-service repo](https://github.com/powersync-ja/powersync-service/tree/main) repo + 2. Install the dependencies + - In the project root, run the following commands: + ```bash + pnpm install + pnpm build:packages + ``` + - In the `test-client` directory, run the following commands: + ```bash + pnpm build + ``` + 3. Generate a new token by running the following command in the `test-client` directory with your updated `powersync.yaml` config file: + ```bash + node dist/bin.js generate-token --config path/to/powersync.yaml --sub test-user + ``` + You should see an output similar to the following: + + + + + + diff --git a/tutorials/self-host/overview.mdx b/tutorials/self-host/overview.mdx index 6d6aaaa5..01cc8d86 100644 --- a/tutorials/self-host/overview.mdx +++ b/tutorials/self-host/overview.mdx @@ -1,3 +1,8 @@ --- -title: "Coming Soon..." ---- \ No newline at end of file +title: "Overview" +description: "A collection of tutorials related to self-hosting." +--- + + + + \ No newline at end of file From 9b0ed9b05f4346f6ded30afb9882dfade114e7e4 Mon Sep 17 00:00:00 2001 From: Hein Date: Thu, 19 Dec 2024 15:39:58 +0200 Subject: [PATCH 2/5] Remove references to API token --- tutorials/self-host/generate-dev-token.mdx | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/tutorials/self-host/generate-dev-token.mdx b/tutorials/self-host/generate-dev-token.mdx index 840df70b..840829fc 100644 --- a/tutorials/self-host/generate-dev-token.mdx +++ b/tutorials/self-host/generate-dev-token.mdx @@ -16,10 +16,8 @@ description: "In this tutorial we will show you how to generate a development to - Update the following in your `powersync.yaml` config file with the `SharedSecret` value copied in the previous step: - - `k` value in your jwks keys, and - - api token - ```yaml powersync.yaml {8, 16} + Update the `k` value in the jwks keys in your `powersync.yaml` config file with the `SharedSecret` value copied in the previous step: + ```yaml powersync.yaml {8} # Client (application end user) authentication settings client_auth: # JWKS URIs can be specified here @@ -29,13 +27,6 @@ description: "In this tutorial we will show you how to generate a development to - kty: 'oct' k: 'YOUR_GENERATED_SHARED_SECRET' alg: 'HS256' - - audience: ["powersync-dev", "powersync", "http://localhost:8080"] - - api: - tokens: - # These tokens are used for local admin API route authentication - - YOUR_GENERATED_SHARED_SECRET ``` From 58d25a9f4cd94461a28cd21c4b77447557ee57fc Mon Sep 17 00:00:00 2001 From: Hein Date: Tue, 24 Dec 2024 14:27:07 +0200 Subject: [PATCH 3/5] Add warning --- tutorials/self-host/generate-dev-token.mdx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tutorials/self-host/generate-dev-token.mdx b/tutorials/self-host/generate-dev-token.mdx index 840829fc..a830c999 100644 --- a/tutorials/self-host/generate-dev-token.mdx +++ b/tutorials/self-host/generate-dev-token.mdx @@ -5,14 +5,16 @@ description: "In this tutorial we will show you how to generate a development to - To generate a SharedSecret, you can use this [Online JWS key generator](https://8gwifi.org/jwsgen.jsp) + To generate a SharedSecret, you can use this [Online JWS key generator](https://8gwifi.org/jwsgen.jsp): You don't need to edit the default payload in the [Online JWS key generator](https://8gwifi.org/jwsgen.jsp). You simply need a valid `SharedSecret` value. - Click `Generate JWS Keys` - Copy the `SharedSecret` value - + + Using an online key generator for secrets in a production environment is not recommended. + From 40f7086ccdd9910d7b0cb7b1e2bfe7139e7fb7ad Mon Sep 17 00:00:00 2001 From: Hein Date: Fri, 27 Dec 2024 08:06:43 +0200 Subject: [PATCH 4/5] Fix typos and add sections --- .../development-tokens.mdx | 2 ++ tutorials/self-host/generate-dev-token.mdx | 22 +++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/installation/authentication-setup/development-tokens.mdx b/installation/authentication-setup/development-tokens.mdx index 13a6dced..152f28fd 100644 --- a/installation/authentication-setup/development-tokens.mdx +++ b/installation/authentication-setup/development-tokens.mdx @@ -37,6 +37,8 @@ For self-hosted [local development](/self-hosting/local-development), the [power node dist/bin.js generate-token --config path/to/powersync.yaml --sub test-user ``` +For more information on generating development tokens, see the [Generate development tokens tutorial](/tutorials/self-host/generate-dev-token) + ## Usage To use the temporary development token, update the `fetchCredentials()` function in your backend connector to return the generated token (see [Integrate with your Backend](/installation/client-side-setup/integrating-with-your-backend) for more information). diff --git a/tutorials/self-host/generate-dev-token.mdx b/tutorials/self-host/generate-dev-token.mdx index a830c999..9e6486c1 100644 --- a/tutorials/self-host/generate-dev-token.mdx +++ b/tutorials/self-host/generate-dev-token.mdx @@ -3,12 +3,30 @@ title: "Generate a Development Token" description: "In this tutorial we will show you how to generate a development token for the self-hosted [PowerSync Service](https://powersync.mintlify.app/architecture/powersync-service#powersync-service)." --- +# Introduction + +Development tokens are useful for: +- getting started quickly without implementing full auth config +- sanity checking your sync rules config (were they applied correctly) +- temporarily impersonating a specific user to debug specific issues + +# Use Case + +Development tokens can be used either with the +- [test-client](https://github.com/powersync-ja/powersync-service/tree/main/test-client), or +- [the diagnostics app](/resources/troubleshooting#diagnostics-app) + +# Generate a Development Token +Development tokens can be generated via either +- [PowerSync Cloud](/installation/authentication-setup/development-tokens/#PowerSync-Cloud-Dashboard), or +- locally with a self-hosted setup (described in this tutorial) + To generate a SharedSecret, you can use this [Online JWS key generator](https://8gwifi.org/jwsgen.jsp): You don't need to edit the default payload in the [Online JWS key generator](https://8gwifi.org/jwsgen.jsp). - You simply need a valid `SharedSecret` value. + You simply need to obtain the generated `SharedSecret` value. - Click `Generate JWS Keys` - Copy the `SharedSecret` value @@ -33,7 +51,7 @@ description: "In this tutorial we will show you how to generate a development to - 1. If you have not done so already, clone the [powersync-service repo](https://github.com/powersync-ja/powersync-service/tree/main) repo + 1. If you have not done so already, clone the [powersync-service repo](https://github.com/powersync-ja/powersync-service/tree/main) 2. Install the dependencies - In the project root, run the following commands: ```bash From fefcb6a6dc091db144df29011e9208a8daf99637 Mon Sep 17 00:00:00 2001 From: Hein Date: Mon, 30 Dec 2024 07:25:02 +0200 Subject: [PATCH 5/5] Update indentation --- tutorials/self-host/generate-dev-token.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tutorials/self-host/generate-dev-token.mdx b/tutorials/self-host/generate-dev-token.mdx index 9e6486c1..ce0b5a1a 100644 --- a/tutorials/self-host/generate-dev-token.mdx +++ b/tutorials/self-host/generate-dev-token.mdx @@ -45,8 +45,8 @@ Development tokens can be generated via either jwks: keys: - kty: 'oct' - k: 'YOUR_GENERATED_SHARED_SECRET' - alg: 'HS256' + k: 'YOUR_GENERATED_SHARED_SECRET' + alg: 'HS256' ```