Skip to content

Commit c367bda

Browse files
committed
docs: add practical update CLI walkthrough
1 parent 46f1265 commit c367bda

1 file changed

Lines changed: 49 additions & 0 deletions

File tree

‎docs/updates.md‎

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,55 @@ The CLI accepts `update plan`, `update apply --plan-id …`, and
3434
repository, destination, service name, credential, or arbitrary binary path.
3535
Other experiences can use the management API with administrator authority.
3636

37+
## CLI walkthrough
38+
39+
Run these commands as the installation owner, with its service running and the
40+
update policy enabled above. Replace `/path/to/installation` with the connector's
41+
installation folder:
42+
43+
```sh
44+
/path/to/installation/bin/acp-slack-adapter --home /path/to/installation update plan
45+
/path/to/installation/bin/acp-slack-adapter --home /path/to/installation update status
46+
```
47+
48+
The plan command returns JSON with an `id`; save that value as your plan ID.
49+
Status wraps the latest plan in `current`: check that `current.id` matches your
50+
saved ID and wait for `current.state` to become `ready`. Inspect its
51+
`source_commit`, `run_url`, `artifact_digest`, `binary_sha256` and `up_to_date`
52+
before deciding to apply. Planning alone does not replace the executable.
53+
Replace `PLAN_ID` below with that returned `id` (not the source commit):
54+
55+
```sh
56+
/path/to/installation/bin/acp-slack-adapter --home /path/to/installation update apply --plan-id PLAN_ID
57+
/path/to/installation/bin/acp-slack-adapter --home /path/to/installation update status
58+
```
59+
60+
Queuing is not completion: both plan and apply start asynchronous work. Check
61+
status again until the same plan reaches its result; `succeeded` means the update
62+
completed its health checks. If it is `deferred`, existing work or uncertain
63+
reply delivery still needs attention: inspect `current.reason` and
64+
`current.waiting_for` (`running_turns`, `pending_replies`, `uncertain_deliveries`).
65+
Let work finish or reconcile uncertain delivery before retrying apply with the
66+
same plan ID. Do not treat `failed`, `rolled_back` or `recovery_required` as a
67+
successful update; inspect the reason, and resolve host issues before recovery.
68+
The management endpoint may be briefly unavailable during restart; check status
69+
again once the service is reachable.
70+
71+
For a plan in `succeeded`, rollback uses the same ID; `recovery_required` also
72+
allows retrying that plan's rollback after the host issue is resolved:
73+
74+
```sh
75+
/path/to/installation/bin/acp-slack-adapter --home /path/to/installation update rollback --plan-id PLAN_ID
76+
/path/to/installation/bin/acp-slack-adapter --home /path/to/installation update status
77+
```
78+
79+
Rollback is asynchronous too: confirm `current.id` and a `rolled_back` result,
80+
not just a queued receipt. Normal rollback requires the installed binary still
81+
to match that plan's updated binary and its backup to pass digest verification;
82+
it is not an arbitrary version selector and does not restore the old database.
83+
84+
## How updates run
85+
3786
The source is fixed to `microsoft/amplifier-acp-slack` main. Planning requires a
3887
successful push run of its `check.yml` workflow at that exact source revision,
3988
then downloads the matching platform artifact and verifies GitHub's recorded

0 commit comments

Comments
 (0)