mirror of
https://github.com/taigrr/nats.docs
synced 2025-01-18 04:03:23 -08:00
79 lines
5.8 KiB
Markdown
79 lines
5.8 KiB
Markdown
## Memory Resolver
|
||
|
||
The `MEMORY` resolver is a built-in resolver for JWTs. It is mostly used by test setups but can be used to test the simplest of environments where there is one or very few accounts, and the account JWTs don’t change often.
|
||
|
||
The basic configuration for the server requires:
|
||
|
||
- The operator JWT
|
||
- `resolver` set to `MEMORY`
|
||
- `resolver_preload` set to an object where account public keys are mapped to account JWTs.
|
||
|
||
|
||
### Create Required Entities
|
||
|
||
Let’s create the setup:
|
||
|
||
```text
|
||
> nsc add operator -n memory
|
||
Generated operator key - private key stored "/Users/synadia/.nkeys/memory/memory.nk"
|
||
Success! - added operator "memory"
|
||
|
||
> nsc add account --name A
|
||
Generated account key - private key stored "/Users/synadia/.nkeys/memory/accounts/A/A.nk"
|
||
Success! - added account "A"
|
||
|
||
> nsc describe account -W
|
||
╭──────────────────────────────────────────────────────────────────────────────────────╮
|
||
│ Account Details │
|
||
├───────────────────────────┬──────────────────────────────────────────────────────────┤
|
||
│ Name │ A │
|
||
│ Account ID │ ACSU3Q6LTLBVLGAQUONAGXJHVNWGSKKAUA7IY5TB4Z7PLEKSR5O6JTGR │
|
||
│ Issuer ID │ ODWZJ2KAPF76WOWMPCJF6BY4QIPLTUIY4JIBLU4K3YDG3GHIWBVWBHUZ │
|
||
│ Issued │ 2019-04-30 20:21:34 UTC │
|
||
│ Expires │ │
|
||
├───────────────────────────┼──────────────────────────────────────────────────────────┤
|
||
│ Max Connections │ Unlimited │
|
||
│ Max Leaf Node Connections │ Unlimited │
|
||
│ Max Data │ Unlimited │
|
||
│ Max Exports │ Unlimited │
|
||
│ Max Imports │ Unlimited │
|
||
│ Max Msg Payload │ Unlimited │
|
||
│ Max Subscriptions │ Unlimited │
|
||
│ Exports Allows Wildcards │ True │
|
||
├───────────────────────────┼──────────────────────────────────────────────────────────┤
|
||
│ Imports │ None │
|
||
│ Exports │ None │
|
||
╰───────────────────────────┴──────────────────────────────────────────────────────────╯
|
||
|
||
> cat /Users/synadia/.nsc/nats/memory/accounts/A/A.jwt
|
||
eyJ0eXAiOiJqd3QiLCJhbGciOiJlZDI1NTE5In0.eyJqdGkiOiJPRFhJSVI2Wlg1Q1AzMlFJTFczWFBENEtTSDYzUFNNSEZHUkpaT05DR1RLVVBISlRLQ0JBIiwiaWF0IjoxNTU2NjU1Njk0LCJpc3MiOiJPRFdaSjJLQVBGNzZXT1dNUENKRjZCWTRRSVBMVFVJWTRKSUJMVTRLM1lERzNHSElXQlZXQkhVWiIsIm5hbWUiOiJBIiwic3ViIjoiQUNTVTNRNkxUTEJWTEdBUVVPTkFHWEpIVk5XR1NLS0FVQTdJWTVUQjRaN1BMRUtTUjVPNkpUR1IiLCJ0eXBlIjoiYWNjb3VudCIsIm5hdHMiOnsibGltaXRzIjp7InN1YnMiOi0xLCJjb25uIjotMSwibGVhZiI6LTEsImltcG9ydHMiOi0xLCJleHBvcnRzIjotMSwiZGF0YSI6LTEsInBheWxvYWQiOi0xLCJ3aWxkY2FyZHMiOnRydWV9fX0._WW5C1triCh8a4jhyBxEZZP8RJ17pINS8qLzz-01o6zbz1uZfTOJGvwSTS6Yv2_849B9iUXSd-8kp1iMXHdoBA
|
||
|
||
> nsc add user --name TA
|
||
Generated user key - private key stored “/Users/synadia/.nkeys/memory/accounts/A/users/TA.nk"
|
||
Generated user creds file “/Users/synadia/.nkeys/memory/accounts/A/users/TA.creds"
|
||
Success! - added user "TA" to "A"
|
||
```
|
||
|
||
### Create the Server Config
|
||
|
||
With the above entries, we can reference the operator JWT and the account JWT in a server configuration. Remember that your configuration will be in `$NSC_HOME/nats/<operator_name>/<operator_name>.jwt` for the operator. The account JWT will be in `$NSC_HOME/nats/<operator_name>/accounts/<account_name>/<account_name>.jwt`
|
||
|
||
```text
|
||
operator: /Users/synadia/.nsc/nats/memory/memory.jwt
|
||
resolver: MEMORY
|
||
resolver_preload: {
|
||
ACSU3Q6LTLBVLGAQUONAGXJHVNWGSKKAUA7IY5TB4Z7PLEKSR5O6JTGR: eyJ0eXAiOiJqd3QiLCJhbGciOiJlZDI1NTE5In0.eyJqdGkiOiJPRFhJSVI2Wlg1Q1AzMlFJTFczWFBENEtTSDYzUFNNSEZHUkpaT05DR1RLVVBISlRLQ0JBIiwiaWF0IjoxNTU2NjU1Njk0LCJpc3MiOiJPRFdaSjJLQVBGNzZXT1dNUENKRjZCWTRRSVBMVFVJWTRKSUJMVTRLM1lERzNHSElXQlZXQkhVWiIsIm5hbWUiOiJBIiwic3ViIjoiQUNTVTNRNkxUTEJWTEdBUVVPTkFHWEpIVk5XR1NLS0FVQTdJWTVUQjRaN1BMRUtTUjVPNkpUR1IiLCJ0eXBlIjoiYWNjb3VudCIsIm5hdHMiOnsibGltaXRzIjp7InN1YnMiOi0xLCJjb25uIjotMSwibGVhZiI6LTEsImltcG9ydHMiOi0xLCJleHBvcnRzIjotMSwiZGF0YSI6LTEsInBheWxvYWQiOi0xLCJ3aWxkY2FyZHMiOnRydWV9fX0._WW5C1triCh8a4jhyBxEZZP8RJ17pINS8qLzz-01o6zbz1uZfTOJGvwSTS6Yv2_849B9iUXSd-8kp1iMXHdoBA
|
||
}
|
||
```
|
||
|
||
Save the config at server.conf and start the server:
|
||
```text
|
||
> nats-server -c server.conf
|
||
```
|
||
|
||
Start a subscriber:
|
||
```text
|
||
> nats-sub -creds /Users/synadia/.nkeys/memory/accounts/A/users/TA.creds ">"
|
||
Listening on [>]
|
||
```
|