Compare commits
2
Commits
2b0224a678
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b446cd5f69 | ||
|
|
073344d4d1 |
@@ -1,3 +1,3 @@
|
|||||||
ARCHES := x86
|
ARCHES := x86 arm
|
||||||
# overrides to s9pk.mk must precede the include statement
|
# overrides to s9pk.mk must precede the include statement
|
||||||
include node_modules/@start9labs/start-sdk/s9pk.mk
|
include node_modules/@start9labs/start-sdk/s9pk.mk
|
||||||
|
|||||||
@@ -37,8 +37,8 @@ through a browser-based terminal.
|
|||||||
|
|
||||||
| Field | Value |
|
| Field | Value |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| Spaces image | `docker.io/horologger/spaces:v0.3.0` |
|
| Spaces image | `docker.io/horologger/spaces:v0.3.1` |
|
||||||
| Subspaces image | `docker.io/horologger/subs:v0.1.2c` |
|
| Subspaces image | `docker.io/horologger/subs:v0.1.2d` |
|
||||||
| Certrelay image | `docker.io/horologger/certrelay:v0.2.8` |
|
| Certrelay image | `docker.io/horologger/certrelay:v0.2.8` |
|
||||||
| Nacho image | `docker.io/horologger/nacho:v1.0.0b` |
|
| Nacho image | `docker.io/horologger/nacho:v1.0.0b` |
|
||||||
| Architectures | `linux/amd64`, `linux/arm64` |
|
| Architectures | `linux/amd64`, `linux/arm64` |
|
||||||
@@ -201,7 +201,7 @@ the same idempotent init logic runs and reuses the existing credentials in
|
|||||||
6. **The web terminal is independent of spaced.** Gotty stays reachable even
|
6. **The web terminal is independent of spaced.** Gotty stays reachable even
|
||||||
when `spaced` is crash-looping, so you can always shell in to diagnose.
|
when `spaced` is crash-looping, so you can always shell in to diagnose.
|
||||||
7. **Subspaces is opt-in.** Fresh installs do not run Subspaces. Run **Enable
|
7. **Subspaces is opt-in.** Fresh installs do not run Subspaces. Run **Enable
|
||||||
Subspaces** to start it. It ships as the prebuilt `horologger/subs:v0.1.2c`
|
Subspaces** to start it. It ships as the prebuilt `horologger/subs:v0.1.2d`
|
||||||
image (no compile step), so enabling is fast — the daemons start as soon
|
image (no compile step), so enabling is fast — the daemons start as soon
|
||||||
as the image is on the box. Enabling runs three daemons, each with its own
|
as the image is on the box. Enabling runs three daemons, each with its own
|
||||||
StartOS interface: **subs** (Web UI + Subs API, 7777), **registry-server**
|
StartOS interface: **subs** (Web UI + Subs API, 7777), **registry-server**
|
||||||
@@ -257,8 +257,8 @@ spaces balance
|
|||||||
package_id: spaces
|
package_id: spaces
|
||||||
upstream_version: subspacesplus
|
upstream_version: subspacesplus
|
||||||
images:
|
images:
|
||||||
spaces: docker.io/horologger/spaces:v0.3.0
|
spaces: docker.io/horologger/spaces:v0.3.1
|
||||||
subspaces: docker.io/horologger/subs:v0.1.2c
|
subspaces: docker.io/horologger/subs:v0.1.2d
|
||||||
certrelay: docker.io/horologger/certrelay:v0.2.8
|
certrelay: docker.io/horologger/certrelay:v0.2.8
|
||||||
nacho: docker.io/horologger/nacho:v1.0.0b
|
nacho: docker.io/horologger/nacho:v1.0.0b
|
||||||
architectures: [x86_64, aarch64]
|
architectures: [x86_64, aarch64]
|
||||||
@@ -293,12 +293,12 @@ spaced_env_vars:
|
|||||||
- APP_USER
|
- APP_USER
|
||||||
- APP_PASSWORD
|
- APP_PASSWORD
|
||||||
spaces:
|
spaces:
|
||||||
image: horologger/spaces:v0.3.0 # spaced, space-cli, gotty (terminal image)
|
image: horologger/spaces:v0.3.1 # spaced, space-cli, gotty (terminal image)
|
||||||
subspaces:
|
subspaces:
|
||||||
default_enabled: false # opt-in via Enable Subspaces action
|
default_enabled: false # opt-in via Enable Subspaces action
|
||||||
store_field: enableSubspaces
|
store_field: enableSubspaces
|
||||||
subs_prover_default_enabled: false # separate toggle: set-subs-prover (store.enableSubsProver)
|
subs_prover_default_enabled: false # separate toggle: set-subs-prover (store.enableSubsProver)
|
||||||
image: horologger/subs:v0.1.2c # prebuilt; no compile step
|
image: horologger/subs:v0.1.2d # prebuilt; no compile step
|
||||||
data_dir: /data/subspaces/data
|
data_dir: /data/subspaces/data
|
||||||
wallet: default # loaded by subs, NOT created (create via space-cli first)
|
wallet: default # loaded by subs, NOT created (create via space-cli first)
|
||||||
daemons: # three separate daemons, each its own interface
|
daemons: # three separate daemons, each its own interface
|
||||||
|
|||||||
+2
-2
@@ -80,8 +80,8 @@ Use **Show Registry API Keys** to retrieve the stored values later, or re-run
|
|||||||
|
|
||||||
- **Mainnet only.** No testnet, signet, or regtest.
|
- **Mainnet only.** No testnet, signet, or regtest.
|
||||||
- **Container images** (see also the package manifest): the `spaced` runtime uses
|
- **Container images** (see also the package manifest): the `spaced` runtime uses
|
||||||
`horologger/spaces:v0.3.0`; Subspaces, Certrelay, and Nacho use
|
`horologger/spaces:v0.3.1`; Subspaces, Certrelay, and Nacho use
|
||||||
`horologger/subs:v0.1.2c`, `horologger/certrelay:v0.2.8`, and
|
`horologger/subs:v0.1.2d`, `horologger/certrelay:v0.2.8`, and
|
||||||
`horologger/nacho:v1.0.0b`.
|
`horologger/nacho:v1.0.0b`.
|
||||||
- The image's `docker_entrypoint.sh` is not used. `spaced` is managed by
|
- The image's `docker_entrypoint.sh` is not used. `spaced` is managed by
|
||||||
StartOS, not started inside a `screen` session by login.
|
StartOS, not started inside a `screen` session by login.
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
import { i18n } from './i18n'
|
||||||
|
|
||||||
|
/** Headers for the Actions and Config page (`ActionMetadata.group`). */
|
||||||
|
export const actionGroups = {
|
||||||
|
spaceCli: i18n('Space-CLI Web UI'),
|
||||||
|
bitcoin: i18n('Bitcoin'),
|
||||||
|
spaced: i18n('Spaced'),
|
||||||
|
subspaces: i18n('Subspaces'),
|
||||||
|
subspacesAuth: i18n('Subspaces Auth'),
|
||||||
|
subspacesProverAuth: i18n('Subspaces Prover Auth'),
|
||||||
|
subspacesRegistry: i18n('Subspaces Registry'),
|
||||||
|
certrelay: i18n('Certrelay'),
|
||||||
|
nacho: i18n('Nacho'),
|
||||||
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import {
|
import {
|
||||||
@@ -61,7 +62,7 @@ export const configureCertrelay = sdk.Action.withInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.certrelay,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import {
|
import {
|
||||||
@@ -90,7 +91,7 @@ export const configureNacho = sdk.Action.withInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.nacho,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import { generateRegistryApiKeys } from '../utils'
|
import { generateRegistryApiKeys } from '../utils'
|
||||||
@@ -15,7 +16,7 @@ export const createRegistryApiKeys = sdk.Action.withoutInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.subspacesRegistry,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
|
|
||||||
@@ -16,7 +17,7 @@ export const disableSubsAuth = sdk.Action.withoutInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.subspacesAuth,
|
||||||
visibility: enabled === true ? 'enabled' : 'hidden',
|
visibility: enabled === true ? 'enabled' : 'hidden',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
|
|
||||||
@@ -16,7 +17,7 @@ export const disableSubsProverAuth = sdk.Action.withoutInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.subspacesProverAuth,
|
||||||
visibility: enabled === true ? 'enabled' : 'hidden',
|
visibility: enabled === true ? 'enabled' : 'hidden',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
|
|
||||||
@@ -16,7 +17,7 @@ export const disableSubspaces = sdk.Action.withoutInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.subspaces,
|
||||||
visibility: current === true ? 'enabled' : 'hidden',
|
visibility: current === true ? 'enabled' : 'hidden',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import { randomPassword } from '../utils'
|
import { randomPassword } from '../utils'
|
||||||
@@ -19,7 +20,7 @@ export const enableSubsAuth = sdk.Action.withoutInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.subspacesAuth,
|
||||||
visibility: enabled === true ? 'hidden' : 'enabled',
|
visibility: enabled === true ? 'hidden' : 'enabled',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import { randomPassword } from '../utils'
|
import { randomPassword } from '../utils'
|
||||||
@@ -19,7 +20,7 @@ export const enableSubsProverAuth = sdk.Action.withoutInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.subspacesProverAuth,
|
||||||
visibility: enabled === true ? 'hidden' : 'enabled',
|
visibility: enabled === true ? 'hidden' : 'enabled',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
|
|
||||||
@@ -16,7 +17,7 @@ export const enableSubspaces = sdk.Action.withoutInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.subspaces,
|
||||||
visibility: current === true ? 'hidden' : 'enabled',
|
visibility: current === true ? 'hidden' : 'enabled',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import { dataDir, SPACED_CHAIN } from '../utils'
|
import { dataDir, SPACED_CHAIN } from '../utils'
|
||||||
@@ -18,7 +19,7 @@ export const exportWallet = sdk.Action.withoutInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'only-running',
|
allowedStatuses: 'only-running',
|
||||||
group: null,
|
group: actionGroups.spaced,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import { dataDir, SPACED_CHAIN } from '../utils'
|
import { dataDir, SPACED_CHAIN } from '../utils'
|
||||||
@@ -37,7 +38,7 @@ export const importWallet = sdk.Action.withInput(
|
|||||||
'Existing /data/mainnet/wallets_backup/default.json and /data/mainnet/wallets/default will be renamed with .bakNNN suffixes before the import. The active spaced daemon will load the imported wallet on success.',
|
'Existing /data/mainnet/wallets_backup/default.json and /data/mainnet/wallets/default will be renamed with .bakNNN suffixes before the import. The active spaced daemon will load the imported wallet on success.',
|
||||||
),
|
),
|
||||||
allowedStatuses: 'only-running',
|
allowedStatuses: 'only-running',
|
||||||
group: null,
|
group: actionGroups.spaced,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import { APP_USER, randomPassword } from '../utils'
|
import { APP_USER, randomPassword } from '../utils'
|
||||||
@@ -15,7 +16,7 @@ export const resetPassword = sdk.Action.withoutInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.spaceCli,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import { dataDir, SPACED_CHAIN } from '../utils'
|
import { dataDir, SPACED_CHAIN } from '../utils'
|
||||||
@@ -16,7 +17,7 @@ export const resetSpacedState = sdk.Action.withoutInput(
|
|||||||
"This deletes spaced's on-disk index. The next start will resync from spaces' anchor and can take a while. store.json (passwords + RPC credentials) is preserved.",
|
"This deletes spaced's on-disk index. The next start will resync from spaces' anchor and can take a while. store.json (passwords + RPC credentials) is preserved.",
|
||||||
),
|
),
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.spaced,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import { dataDir, SUBSPACES_DIR } from '../utils'
|
import { dataDir, SUBSPACES_DIR } from '../utils'
|
||||||
@@ -16,7 +17,7 @@ export const resetSubspacesState = sdk.Action.withoutInput(
|
|||||||
'This deletes all local Subspaces state — any handles/proofs stored on disk will be lost. The binaries ship in the image, so nothing needs to be re-downloaded. The spaces wallet on spaced is preserved.',
|
'This deletes all local Subspaces state — any handles/proofs stored on disk will be lost. The binaries ship in the image, so nothing needs to be re-downloaded. The spaces wallet on spaced is preserved.',
|
||||||
),
|
),
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.subspaces,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import {
|
import {
|
||||||
@@ -17,7 +18,7 @@ export const setBitcoinRpc = sdk.Action.withoutInput(
|
|||||||
description: i18n('Re-run the bitcoind RPC credential setup for Spaces'),
|
description: i18n('Re-run the bitcoind RPC credential setup for Spaces'),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.bitcoin,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import { randomPassword } from '../utils'
|
import { randomPassword } from '../utils'
|
||||||
@@ -50,7 +51,7 @@ export const setSubsCredentials = sdk.Action.withInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.subspacesAuth,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
|
|
||||||
@@ -28,7 +29,7 @@ export const setSubsProver = sdk.Action.withInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.subspaces,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import { randomPassword } from '../utils'
|
import { randomPassword } from '../utils'
|
||||||
@@ -50,7 +51,7 @@ export const setSubsProverCredentials = sdk.Action.withInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.subspacesProverAuth,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import { APP_USER } from '../utils'
|
import { APP_USER } from '../utils'
|
||||||
@@ -15,7 +16,7 @@ export const showCredentials = sdk.Action.withoutInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.spaceCli,
|
||||||
visibility: 'hidden',
|
visibility: 'hidden',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import { APP_USER } from '../utils'
|
import { APP_USER } from '../utils'
|
||||||
@@ -15,7 +16,7 @@ export const showPassword = sdk.Action.withoutInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.spaceCli,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
|
|
||||||
@@ -14,7 +15,7 @@ export const showRegistryApiKeys = sdk.Action.withoutInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.subspacesRegistry,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import { spacedRpcPort } from '../utils'
|
import { spacedRpcPort } from '../utils'
|
||||||
@@ -15,7 +16,7 @@ export const showSpacedCredentials = sdk.Action.withoutInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.spaced,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import { SUBSPACES_UI_PORT } from '../utils'
|
import { SUBSPACES_UI_PORT } from '../utils'
|
||||||
@@ -15,7 +16,7 @@ export const showSubsCredentials = sdk.Action.withoutInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.subspacesAuth,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import { SUBSPACES_PROVER_PORT } from '../utils'
|
import { SUBSPACES_PROVER_PORT } from '../utils'
|
||||||
@@ -15,7 +16,7 @@ export const showSubsProverCredentials = sdk.Action.withoutInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.subspacesProverAuth,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { storeJson } from '../fileModels/storeJson'
|
import { storeJson } from '../fileModels/storeJson'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import { dataDir, SPACED_CHAIN } from '../utils'
|
import { dataDir, SPACED_CHAIN } from '../utils'
|
||||||
@@ -15,7 +16,7 @@ export const syncStatus = sdk.Action.withoutInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'only-running',
|
allowedStatuses: 'only-running',
|
||||||
group: null,
|
group: actionGroups.spaced,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { readFile } from 'fs/promises'
|
import { readFile } from 'fs/promises'
|
||||||
|
import { actionGroups } from '../actionGroups'
|
||||||
import { i18n } from '../i18n'
|
import { i18n } from '../i18n'
|
||||||
import { sdk } from '../sdk'
|
import { sdk } from '../sdk'
|
||||||
import { dataDir } from '../utils'
|
import { dataDir } from '../utils'
|
||||||
@@ -36,7 +37,7 @@ export const uploadSupportPdf = sdk.Action.withInput(
|
|||||||
),
|
),
|
||||||
warning: null,
|
warning: null,
|
||||||
allowedStatuses: 'any',
|
allowedStatuses: 'any',
|
||||||
group: null,
|
group: actionGroups.nacho,
|
||||||
visibility: 'enabled',
|
visibility: 'enabled',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|||||||
@@ -308,6 +308,11 @@ const dict = {
|
|||||||
223,
|
223,
|
||||||
'Subspaces registry-server requires REGISTRY_API_KEY and SUBSD_API_KEY before it can start':
|
'Subspaces registry-server requires REGISTRY_API_KEY and SUBSD_API_KEY before it can start':
|
||||||
224,
|
224,
|
||||||
|
Bitcoin: 225,
|
||||||
|
Spaced: 226,
|
||||||
|
Subspaces: 227,
|
||||||
|
'Subspaces Auth': 228,
|
||||||
|
'Subspaces Prover Auth': 229,
|
||||||
} as const
|
} as const
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -14,11 +14,11 @@ export const manifest = setupManifest({
|
|||||||
volumes: ['main'],
|
volumes: ['main'],
|
||||||
images: {
|
images: {
|
||||||
spaces: {
|
spaces: {
|
||||||
source: { dockerTag: 'horologger/spaces:v0.3.0' },
|
source: { dockerTag: 'horologger/spaces:v0.3.1' },
|
||||||
arch: ['x86_64', 'aarch64'],
|
arch: ['x86_64', 'aarch64'],
|
||||||
},
|
},
|
||||||
subspaces: {
|
subspaces: {
|
||||||
source: { dockerTag: 'horologger/subs:v0.1.2c' },
|
source: { dockerTag: 'horologger/subs:v0.1.2d' },
|
||||||
arch: ['x86_64', 'aarch64'],
|
arch: ['x86_64', 'aarch64'],
|
||||||
},
|
},
|
||||||
certrelay: {
|
certrelay: {
|
||||||
|
|||||||
@@ -1,14 +1,9 @@
|
|||||||
import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk'
|
import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk'
|
||||||
|
|
||||||
export const current = VersionInfo.of({
|
export const current = VersionInfo.of({
|
||||||
version: '0.3.0:0',
|
version: '0.3.1:0',
|
||||||
releaseNotes: {
|
releaseNotes: {
|
||||||
en_US: `Update to upstream Spaces **0.3.0** (\`horologger/spaces:v0.3.0\`). Also bundles \`subs:v0.1.2c\`, \`certrelay:v0.2.8\`, and \`nacho:v1.0.0b\`.
|
en_US: `Update to upstream Spaces **0.3.1** (\`horologger/spaces:v0.3.1\`). Also bundles \`subs:v0.1.2d\` (\`certrelay:v0.2.8\` and \`nacho:v1.0.0b\` unchanged).
|
||||||
|
|
||||||
**Wrapper**
|
|
||||||
|
|
||||||
- Add **Create Registry API Keys** / **Show Registry API Keys** for the embedded \`registry-server\` (\`REGISTRY_API_KEY\` + \`SUBSD_API_KEY\`; required and must differ)
|
|
||||||
- Remove **Configure Subspaces** and \`SUBS_PUBLISH_REQUIRE_FINALIZED\`
|
|
||||||
|
|
||||||
Requires StartOS 0.4.0-beta.10 (\`start-sdk\` 2.0.9).`,
|
Requires StartOS 0.4.0-beta.10 (\`start-sdk\` 2.0.9).`,
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user