@freecodecamp/universe-cli 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -19,30 +19,30 @@ universe <command>
19
19
 
20
20
  <details>
21
21
  <summary>
22
- Download the latest binary from [Releases](../../releases):
22
+ Download the latest binary from <a href="https://github.com/freeCodeCamp-Universe/universe-cli/releases">Releases</a>:
23
23
  </summary>
24
24
 
25
- ```sh
26
- # macOS (Apple Silicon)
27
- gh release download --repo freeCodeCamp-Universe/universe-cli --pattern "universe-darwin-arm64"
28
- chmod +x universe-darwin-arm64
29
- sudo mv universe-darwin-arm64 /usr/local/bin/universe
30
-
31
- # macOS (Intel)
32
- gh release download --repo freeCodeCamp-Universe/universe-cli --pattern "universe-darwin-amd64"
33
- chmod +x universe-darwin-amd64
34
- sudo mv universe-darwin-amd64 /usr/local/bin/universe
35
-
36
- # Linux x64
37
- gh release download --repo freeCodeCamp-Universe/universe-cli --pattern "universe-linux-amd64"
38
- chmod +x universe-linux-amd64
39
- sudo mv universe-linux-amd64 /usr/local/bin/universe
40
-
41
- # Linux ARM64
42
- gh release download --repo freeCodeCamp-Universe/universe-cli --pattern "universe-linux-arm64"
43
- chmod +x universe-linux-arm64
44
- sudo mv universe-linux-arm64 /usr/local/bin/universe
45
- ```
25
+ ```sh
26
+ # macOS (Apple Silicon)
27
+ gh release download --repo freeCodeCamp-Universe/universe-cli --pattern "universe-darwin-arm64"
28
+ chmod +x universe-darwin-arm64
29
+ sudo mv universe-darwin-arm64 /usr/local/bin/universe
30
+
31
+ # macOS (Intel)
32
+ gh release download --repo freeCodeCamp-Universe/universe-cli --pattern "universe-darwin-amd64"
33
+ chmod +x universe-darwin-amd64
34
+ sudo mv universe-darwin-amd64 /usr/local/bin/universe
35
+
36
+ # Linux x64
37
+ gh release download --repo freeCodeCamp-Universe/universe-cli --pattern "universe-linux-amd64"
38
+ chmod +x universe-linux-amd64
39
+ sudo mv universe-linux-amd64 /usr/local/bin/universe
40
+
41
+ # Linux ARM64
42
+ gh release download --repo freeCodeCamp-Universe/universe-cli --pattern "universe-linux-arm64"
43
+ chmod +x universe-linux-arm64
44
+ sudo mv universe-linux-arm64 /usr/local/bin/universe
45
+ ```
46
46
 
47
47
  </details>
48
48
 
@@ -88,16 +88,10 @@ All commands support `--json` for CI integration.
88
88
  The CLI resolves a GitHub identity in this order — first match wins:
89
89
 
90
90
  1. `$GITHUB_TOKEN` / `$GH_TOKEN` env (CI explicit)
91
- 2. GHA OIDC (`$ACTIONS_ID_TOKEN_REQUEST_URL` + `$ACTIONS_ID_TOKEN_REQUEST_TOKEN`)
92
- 3. Woodpecker OIDC env (deferred — placeholder slot)
93
- 4. `gh auth token` shell-out (laptop with `gh` installed)
94
- 5. Device-flow stored token at `~/.config/universe-cli/token`
91
+ 1. `gh auth token` shell-out (laptop with `gh` installed)
92
+ 1. Device-flow stored token at `~/.config/universe-cli/token`
95
93
 
96
- The proxy validates whatever it receives via GitHub `GET /user`, then
97
- authorizes against the registry server-side (Valkey-backed; the
98
- `sites_yaml` backend was retired in artemis `f115198`). Run
99
- `universe whoami` to see which slot resolved; inspect the sites you
100
- can deploy to with `universe sites ls --mine`.
94
+ CI runners must export `$GITHUB_TOKEN` explicitly. artemis validates the bearer via GitHub `GET /user`, then authorizes server-side against the Valkey-backed registry. Run `universe whoami` to see which slot resolved; inspect the sites you can deploy to with `universe sites ls --mine`.
101
95
 
102
96
  ## Configuration (`platform.yaml`)
103
97
 
@@ -107,57 +101,13 @@ Every site has a `platform.yaml` at its repo root. Minimal valid file:
107
101
  site: my-site
108
102
  ```
109
103
 
110
- Full schema reference (every field, defaults, validation rules):
111
- [`docs/platform-yaml.md`](docs/platform-yaml.md).
104
+ Full schema reference (every field, defaults, validation rules): [`docs/platform-yaml.md`](docs/platform-yaml.md).
112
105
 
113
- No credential fields. The proxy holds the R2 admin key; the CLI never
114
- reads or writes one.
106
+ No credential fields. The proxy holds the R2 admin key; the CLI never reads or writes one.
115
107
 
116
108
  ## Common flows
117
109
 
118
- Staff onboarding + deploy lifecycle:
119
-
120
- ```sh
121
- # 1. Authenticate (laptop, first time)
122
- universe login
123
-
124
- # 2. Identity + how many sites you can deploy to
125
- universe whoami
126
-
127
- # 3. List your authorized sites (intersects registry with your GH teams)
128
- universe sites ls --mine
129
-
130
- # 4. From your site repo: deploy to preview (reads ./platform.yaml)
131
- universe static deploy
132
-
133
- # 5. Inspect recent deploys for the current site
134
- universe static ls
135
-
136
- # 6. Promote preview to production
137
- universe static promote
138
-
139
- # 7. Roll production back to a past deploy
140
- universe static rollback --to 20260427-141522-abc1234
141
- ```
142
-
143
- Registry admin (staff team only — gated server-side by artemis's
144
- `REGISTRY_AUTHZ_TEAM`, default `staff`):
145
-
146
- ```sh
147
- # Register a new site (defaults --team to staff)
148
- universe sites register hello-universe --team bots,staff
149
-
150
- # Add or replace the teams list on an existing site
151
- universe sites update hello-universe --team bots,staff,curriculum
152
-
153
- # Delete a site from the registry (R2 bytes age out via cleanup cron)
154
- universe sites rm hello-universe
155
- ```
156
-
157
- CI (GitHub Actions) — set `permissions: id-token: write` and rely on
158
- slot 2 (GHA OIDC) of the identity chain, or pass `$GITHUB_TOKEN`
159
- explicitly. Full operator walkthrough:
160
- [`docs/STAFF-GUIDE.md`](docs/STAFF-GUIDE.md).
110
+ Full operator walkthrough (login → deploy → promote → rollback, CI shape, registry admin, troubleshooting) lives in [`docs/STAFF-GUIDE.md`](docs/STAFF-GUIDE.md).
161
111
 
162
112
  ## Environment overrides
163
113
 
@@ -167,8 +117,4 @@ explicitly. Full operator walkthrough:
167
117
  | `UNIVERSE_GH_CLIENT_ID` | _baked-in freeCodeCamp OAuth id_ | Override GitHub OAuth App id (fork tenants, `login` only) |
168
118
  | `GITHUB_TOKEN` / `GH_TOKEN` | — | Slot 1 of identity chain |
169
119
 
170
- The shipped binary embeds the `freeCodeCamp` GitHub OAuth App client id
171
- (public; device flow uses no `client_secret`), so `universe login` works
172
- out of the box for staff. Fork operators and self-hosted mirror tenants
173
- set `UNIVERSE_GH_CLIENT_ID` to their own OAuth App's id — env value
174
- wins when set.
120
+ The shipped binary embeds the `freeCodeCamp` GitHub OAuth App client id (public; device flow uses no `client_secret`), so `universe login` works out of the box for staff. Fork operators and self-hosted mirror tenants set `UNIVERSE_GH_CLIENT_ID` to their own OAuth App's id — env value wins when set.