120 lines
4.7 KiB
Markdown
120 lines
4.7 KiB
Markdown
|
# records-demo
|
||
|
|
||
|
## Setup
|
||
|
|
||
|
* Set account key and bond id in the CLI config:
|
||
|
|
||
|
```bash
|
||
|
# Set bond id to the bond created earlier or create a new one
|
||
|
BOND_ID=<bond-id>
|
||
|
|
||
|
# Update CLI config
|
||
|
laconic-so deployment --dir laconic-console-deployment exec cli "CERC_LACONICD_USER_KEY=${ALICE_PK} CERC_LACONICD_BOND_ID=${BOND_ID} /app/create-config.sh"
|
||
|
|
||
|
# Note: Update the values in 'laconic-console-deployment/config.env' accordingly before restarting
|
||
|
```
|
||
|
|
||
|
## Run
|
||
|
|
||
|
* Copy over all records from a dir to the data dir in `laconic-console-deployment` (`laconic-console-deployment/data/laconic-registry-data`) and publish the records:
|
||
|
|
||
|
```bash
|
||
|
# Example: for demo records
|
||
|
# Copy over the records
|
||
|
cp -r /home/user/fixturenet-laconicd-stack/stack-orchestrator/config/demo-records laconic-console-deployment/data/laconic-registry-data/
|
||
|
|
||
|
# Publish the records from `laconic-registry-data` directory
|
||
|
laconic-so deployment --dir laconic-console-deployment exec cli "yarn ts-node demo/scripts/publish-records.ts --config config.yml --records /laconic-registry-data/demo-records"
|
||
|
```
|
||
|
|
||
|
OR
|
||
|
|
||
|
```bash
|
||
|
# Example: for testnet records
|
||
|
# Copy over the records
|
||
|
cp -r /home/user/laconic-testnet-data/records/repo laconic-console-deployment/data/laconic-registry-data/repo-records
|
||
|
rsync -av --exclude 'repo' /home/user/laconic-testnet-data/records laconic-console-deployment/data/laconic-registry-data/
|
||
|
|
||
|
# Publish repository records first
|
||
|
laconic-so deployment --dir laconic-console-deployment exec cli "yarn ts-node demo/scripts/publish-records.ts --config config.yml --records /laconic-registry-data/repo-records"
|
||
|
|
||
|
# Publish rest of the records
|
||
|
laconic-so deployment --dir laconic-console-deployment exec cli "yarn ts-node demo/scripts/publish-records.ts --config config.yml --records /laconic-registry-data/records"
|
||
|
```
|
||
|
|
||
|
## Query
|
||
|
|
||
|
* All the published records can be viewed on the console at <http://localhost:8080>
|
||
|
* explore the console for more information
|
||
|
* click on the link aside a record that opens the GraphQL console
|
||
|
* the query is pre-loaded, run it and inspect the output
|
||
|
|
||
|
### CLI Examples
|
||
|
|
||
|
* Query all records:
|
||
|
|
||
|
```bash
|
||
|
laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record list"
|
||
|
```
|
||
|
|
||
|
* Query for `geth` service deployment(s):
|
||
|
|
||
|
* Find the `ServiceRecord` for `geth`:
|
||
|
|
||
|
```bash
|
||
|
SERVICE_RECORD_ID=$(laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record list --all --type ServiceRecord --name geth | jq -r '.[].id'")
|
||
|
```
|
||
|
|
||
|
* Find corresponding deployment(s):
|
||
|
|
||
|
```bash
|
||
|
laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record list --all --type ServiceDeploymentRecord service $SERVICE_RECORD_ID"
|
||
|
|
||
|
# Get the deployment URL(s)
|
||
|
laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record list --all --type ServiceDeploymentRecord service $SERVICE_RECORD_ID | jq -r '.[].attributes.url'"
|
||
|
|
||
|
# Expected output:
|
||
|
# https://geth-rpc-endpoint-1.example.com
|
||
|
# https://geth-rpc-endpoint-2.example.com
|
||
|
```
|
||
|
|
||
|
* Query for `azimuth-watcher` deployment(s):
|
||
|
|
||
|
* Find the `WatcherRecord` for `azimuth-watcher`:
|
||
|
|
||
|
```bash
|
||
|
WATCHER_RECORD_ID=$(laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record list --all --type WatcherRecord --name azimuth-watcher | jq -r '.[].id'")
|
||
|
```
|
||
|
|
||
|
* Find corresponding deployment(s):
|
||
|
|
||
|
```bash
|
||
|
laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record list --all --type WatcherDeploymentRecord watcher $WATCHER_RECORD_ID"
|
||
|
|
||
|
# Get the deployment URL(s)
|
||
|
laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record list --all --type WatcherDeploymentRecord watcher $WATCHER_RECORD_ID | jq -r '.[].attributes.url'"
|
||
|
|
||
|
# Expected output:
|
||
|
https://azimuth-watcher-endpoint.example.com
|
||
|
```
|
||
|
|
||
|
* Query for `bsc-node` stack:
|
||
|
|
||
|
* Find the `StackRecord` for `bsc-node` stack:
|
||
|
|
||
|
```bash
|
||
|
laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record list --all --type StackRecord --name bsc-node"
|
||
|
|
||
|
# Get the repo record id
|
||
|
STACK_REPO_RECORD_ID=$(laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record list --all --type StackRecord --name bsc-node | jq -r '.[].attributes.repository'")
|
||
|
```
|
||
|
|
||
|
* Find the corresponding `RepositoryRecord`:
|
||
|
|
||
|
```bash
|
||
|
laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record get --id $STACK_REPO_RECORD_ID"
|
||
|
|
||
|
# Get the repo URL
|
||
|
laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record get --id $STACK_REPO_RECORD_ID | jq -r '.[].attributes.url'"
|
||
|
```
|