@bongos/core 1.21.92 → 1.21.94

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.
Files changed (56) hide show
  1. package/.bongos-core.json +86 -56
  2. package/clients/bongos-client/README.md +1 -1
  3. package/clients/bongos-client/bongos-client.global.js +2 -0
  4. package/clients/bongos-client/index.cjs +2 -0
  5. package/clients/bongos-client/index.d.ts +4 -2
  6. package/clients/bongos-client/index.mjs +2 -0
  7. package/docs/adr/0363-who-decides-what-is-a-table-changed-only-by-amendment.md +1 -0
  8. package/docs/api/openapi.json +38 -7
  9. package/docs/api-reference.md +4 -3
  10. package/docs/copy-inventory.md +354 -354
  11. package/docs/copy-registry.json +420 -420
  12. package/docs/design/project-startup-direction.md +7 -0
  13. package/docs/module-api-changelog.md +9 -0
  14. package/docs/page-readings.json +963 -992
  15. package/modules/autonomy/routes/autonomy.js +14 -5
  16. package/modules/government/decision-board.js +13 -3
  17. package/modules/government/decision-rules.js +61 -13
  18. package/modules/lifecycle/routes/done-when.js +2 -2
  19. package/modules/lifecycle/routes/gate-approvals.js +1 -1
  20. package/modules/lifecycle/routes/goals.js +4 -4
  21. package/modules/lifecycle/routes/project-settings.js +2 -2
  22. package/modules/lifecycle/routes/tasks.js +1 -1
  23. package/modules/lifecycle/routes/versions.js +1 -1
  24. package/modules/npm-release/routes/release.js +1 -0
  25. package/modules/onboarding/routes/access-requests.js +3 -3
  26. package/modules/provisioning/github-setup.js +129 -0
  27. package/modules/provisioning/module.json +2 -1
  28. package/modules/provisioning/provisioning.js +3 -0
  29. package/modules/provisioning/routes/callback-page.js +66 -1
  30. package/modules/provisioning/routes/core-upgrade.js +11 -0
  31. package/modules/provisioning/routes/github-setup.js +113 -0
  32. package/modules/provisioning/routes/provisioning.js +11 -45
  33. package/modules/public-landing/public/projects.html +105 -57
  34. package/modules/render-deploy/routes/act.js +1 -1
  35. package/modules/security/routes/reports.js +3 -0
  36. package/package-lock.json +2 -2
  37. package/package.json +1 -1
  38. package/release-notes.json +12 -0
  39. package/scripts/gds/fitness.js +7 -0
  40. package/scripts/gds/oauth-secret.js +4 -2
  41. package/scripts/gds/provision-github-setup.js +148 -0
  42. package/scripts/gds/provision.js +19 -5
  43. package/src/bongos/act-alone.js +84 -0
  44. package/src/bongos/routes/builders.js +6 -1
  45. package/src/module-api.js +7 -1
  46. package/tests/autonomy_fence_priority.mjs +3 -1
  47. package/tests/github_one_trip.mjs +297 -0
  48. package/tests/government_act_alone_buildings.mjs +430 -0
  49. package/tests/module_api.mjs +1 -0
  50. package/tests/npm_release_release.mjs +2 -1
  51. package/tests/projects_hub_dns_ready.mjs +2 -1
  52. package/tests/projects_hub_pre_uat.mjs +17 -9
  53. package/tests/provision.mjs +51 -9
  54. package/tests/provisioning_github_app_routes.mjs +94 -8
  55. package/tests/ship_mode.mjs +2 -1
  56. package/tests/wizard_github_feedback.mjs +8 -5
@@ -54,6 +54,13 @@ This table replaces the blended flow's table below for every hub-side capability
54
54
  | Done: standup strip, the owner-only steps, invite | Part 03 on the same page: the GitHub checklist replaces the paged owner-only steps, then "is alive" with the invite box (once the hall is live, PS15) and the genesis door. |
55
55
  | Demo: fit check, settings, teammates, 30-day notice | The "Try a small demo instead" link opens the demo's people, hours, idea and teammates in place at the top of part 01, marks the page "demo", and shows the fit sentence; the rest of the page is unchanged. |
56
56
 
57
+ ### GitHub in one trip, as built (task 1004649)
58
+
59
+ - **The trip.** "Connect GitHub ↗" posts the app manifest to GitHub. The manifest now carries a `setup_url` (the hub's `/provisioning/github-app/setup`). After the approval GitHub returns to the manifest callback, which waits until the runner has placed the app's keys and recorded its name, then sends the same tab straight to `github.com/apps/<app>/installations/new`. When GitHub will describe the repo to an anonymous caller (a public repo), the link is narrowed with `/permissions?suggested_target_id=<owner id>&repository_ids[]=<repo id>`, so the founder only has to confirm. After the install, GitHub sends them to the `setup_url` with the attempt's `state`, and that page hands them back to the checklist.
60
+ - **The ticks are server facts, never clicks.** *Approve*: GitHub made the app and the runner placed its keys (the slug is recorded only after the placement write). *Install*: the runner asks GitHub `GET /repos/{owner}/{repo}/installation`, signed as the app with the app's own key. The `installation_id` GitHub appends to the `setup_url` is never trusted, because GitHub's docs warn it can be spoofed; it only makes the runner look again. *Builders can sign in*: the runner saw `auth_configured` on the project's `/api/bongos/healthz`. The root `/healthz` answers a plain "ok", and reading that one is why every setup used to be recorded as failed (task 1004577). *Command-line sign-in*: the runner starts a device sign-in with the app's client id, and GitHub does not refuse it with `device_flow_disabled`. The facts are rows in `provisioning_events`, so no new column was needed. The checklist is derived in `modules/provisioning/github-setup.js`; the runner's check is `scripts/gds/provision-github-setup.js`.
61
+ - **Device flow cannot be switched on for the founder (spike, task 1004649).** GitHub's manifest parameters are `name`, `url`, `hook_attributes`, `redirect_url`, `callback_urls`, `setup_url`, `setup_on_update`, `request_oauth_on_install`, `public`, `default_permissions`, `default_events` and `description`, and none of them is device flow. The REST API for apps (`/app`, `/app/installations…`, `/app-manifests/{code}/conversions`) has no endpoint that changes an app's registration. GitHub's own guide says device flow has to be enabled in the app's settings first. So the fourth step is **optional**: it reads "Optional — turn it on later" with a link to the app's settings, ticks itself when the runner sees it on, and never holds back "connected" or "is alive". Web sign-in works without it, and the CLI falls back to a web token meanwhile (`scripts/gds/device-flow-help.js`).
62
+ - **Left as seams for the sibling tasks.** The hand-back from any tab or device, and checking while the page is hidden (task 1004650). The page already re-learns the checklist from the owner's instance read (`github_setup`), and that read never carries the state token. A personal or an organisation account (task 1004651). Resuming a stopped step, and a fixing button for every failure, including "check again" after the runner's two-hour window (task 1004652).
63
+
57
64
  ### Who builds it
58
65
 
59
66
  | Task | Builds |
@@ -3010,11 +3010,20 @@ is load-bearing: the script throws rather than guess if it is missing, and
3010
3010
  landed since 1.21.87 with no explicit bump. run 37888371878. (task 1002620)
3011
3011
  1.21.89 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
3012
3012
  landed since 1.21.88 with no explicit bump. run 37889772259. (task 1002620)
3013
+ (next carrier) — requireActAlone added (task 1004657, goal 1000111; ADR 0363
3014
+ D5). The gate a building's own page mounts after its permission gate:
3015
+ while the project's decision-rules row hands that building to a
3016
+ sitting, one builder acting alone is refused (409 decided_by_sitting).
3017
+ Additive; with no government module it lets every request through.
3013
3018
  1.21.90 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
3014
3019
  landed since 1.21.89 with no explicit bump. run 37891104032. (task 1002620)
3015
3020
  1.21.91 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
3016
3021
  landed since 1.21.90 with no explicit bump. run 37892645919. (task 1002620)
3017
3022
  1.21.92 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
3018
3023
  landed since 1.21.91 with no explicit bump. run 37894940047. (task 1002620)
3024
+ 1.21.93 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
3025
+ landed since 1.21.92 with no explicit bump. run 37898035856. (task 1002620)
3026
+ 1.21.94 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
3027
+ landed since 1.21.93 with no explicit bump. run 37901444360. (task 1002620)
3019
3028
  ---------------------------------------------------------------------------
3020
3029
  ```