Skip to content

Commit c2132e5

Browse files
committed
docs: Document rofl secret and update deploy
1 parent 750214c commit c2132e5

6 files changed

Lines changed: 77 additions & 15 deletions

File tree

docs/rofl.md

Lines changed: 71 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -99,32 +99,60 @@ chapter for details.
9999
[ROFL Prerequisites]: https://github.com/oasisprotocol/oasis-sdk/blob/main/docs/rofl/prerequisites.md
100100
[npa]: ./account.md#npa
101101

102-
## Update ROFL app config {#update}
103-
104-
Use `rofl update` command to update the ROFL app's configuration on chain:
102+
## Secrets management {#secret}
105103

106-
![code shell](../examples/rofl/update.in.static)
104+
### `set` {#secret-set}
107105

108-
![code shell](../examples/rofl/update.out.static)
106+
Run `rofl secret set <secret_name> <filename>|-` command to end-to-end encrypt a
107+
secret with a key derived from the selected deployment network and store it to
108+
the manifest file.
109109

110-
## Remove ROFL app from the network {#remove}
110+
If you have your secret in a file, run:
111111

112-
Run `rofl remove` to deregister your ROFL app:
112+
![code shell](../examples/rofl/secret-set-file.in.static)
113113

114-
![code shell](../examples/rofl/remove.in.static)
114+
You can also feed the secret from a standard input like this:
115115

116-
![code](../examples/rofl/remove.out.static)
116+
![code shell](../examples/rofl/secret-set-stdin.in.static)
117117

118-
The deposit required to register the ROFL app will be returned to the current
119-
administrator account.
118+
Once the secret is encrypted and stored, **there is no way of obtaining it back
119+
again apart from within the TEE on the designated ROFL deployment**.
120120

121-
:::danger Secrets will be permanently lost
121+
:::danger Shells store history
122122

123-
All secrets stored on-chain will be permanently lost when the ROFL app will be
124-
deregistered.
123+
Passing secrets as a command line argument will store them in your shell history
124+
file as well! Use it for testing only. In production, always use file-based
125+
secrets.
125126

126127
:::
127128

129+
### `get` {#secret-get}
130+
131+
Run `rofl secret get <secret-name>` to check, whether the secret exists in your
132+
manifest file.
133+
134+
![code shell](../examples/rofl/secret-get.in.static)
135+
136+
![code](../examples/rofl/secret-get.out.static)
137+
138+
### `rm` {#secret-rm}
139+
140+
Run `rofl secret rm <secret-name>` to remove the secret from your manifest file.
141+
142+
![code shell](../examples/rofl/secret-rm.in.static)
143+
144+
## Update ROFL app config {#update}
145+
146+
Use `rofl update` command to push the ROFL app's configuration to the chain:
147+
148+
![code shell](../examples/rofl/update.in.static)
149+
150+
![code shell](../examples/rofl/update.out.static)
151+
152+
The current on-chain policy, metadata and secrets will be replaced with the ones
153+
in the manifest file. Keep in mind that ROFL replicas need to be restarted in
154+
order for changes to take effect.
155+
128156
## Show ROFL information {#show}
129157

130158
Run `rofl show` to obtain the information from the network on the ROFL admin
@@ -136,10 +164,38 @@ account, staked amount, current ROFL policy and running instances:
136164

137165
## Deploy ROFL app {#deploy}
138166

139-
Run `rofl deploy` to automatically deploy your app to the provider on-chain.
167+
Run `rofl deploy` to automatically deploy your app to a machine obtained from
168+
the [ROFL marketplace]. If a machine is already hosting your ROFL app a new
169+
version will be deployed there. If no machines are rented yet, you can use the
170+
following arguments to select a specific provider and offer:
171+
172+
- `--provider <address>` specifies the provider to rent the machine from. On
173+
Sapphire Testnet, the Oasis-managed provider will be selected by default.
174+
- `--offer <offer_name>` specifies the offer of the machine to rent. Run
175+
`--show-offers` to obtain offer names and specifications.
176+
177+
[ROFL marketplace]: https://github.com/oasisprotocol/oasis-sdk/blob/main/docs/rofl/features/marketplace.mdx
140178

141179
## Advanced
142180

181+
### Remove ROFL app from the network {#remove}
182+
183+
Run `rofl remove` to deregister your ROFL app:
184+
185+
![code shell](../examples/rofl/remove.in.static)
186+
187+
![code](../examples/rofl/remove.out.static)
188+
189+
The deposit required to register the ROFL app will be returned to the current
190+
administrator account.
191+
192+
:::danger Secrets will be permanently lost
193+
194+
All secrets stored on-chain will be permanently lost when the ROFL app will be
195+
deregistered.
196+
197+
:::
198+
143199
### Show ROFL identity {#identity}
144200

145201
Run `rofl identity` to compute the **cryptographic identity** of the ROFL app:

examples/rofl/secret-get.in.static

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
oasis rofl secret get MY_SECRET
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Name: MY_SECRET
2+
Size: 156 bytes

examples/rofl/secret-rm.in.static

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
oasis rofl secret rm MY_SECRET
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
oasis rofl secret set MY_SECRET mysecret.txt
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
echo -n "this-is-a-very-secret-value-here" | oasis rofl secret set MY_SECRET -

0 commit comments

Comments
 (0)