@bongos/core 1.25.20 → 1.25.21
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/.bongos-core.json +157 -62
- package/clients/bongos-client/README.md +1 -1
- package/clients/bongos-client/bongos-client.global.js +10 -0
- package/clients/bongos-client/index.cjs +10 -0
- package/clients/bongos-client/index.d.ts +23 -8
- package/clients/bongos-client/index.mjs +10 -0
- package/docs/adr/0406-every-project-gets-a-sandbox-that-follows-main-and-live-moves-only-when-a-person-promotes.md +10 -0
- package/docs/adr/0407-a-project-grant-is-made-by-the-owner-not-witnessed-at-sign-in.md +3 -1
- package/docs/api/openapi.json +409 -36
- package/docs/api-reference.md +7 -2
- package/docs/copy-inventory.md +20 -20
- package/docs/copy-registry.json +23 -23
- package/docs/module-api-changelog.md +2 -0
- package/docs/page-readings.json +2 -2
- package/modules/government/board.js +8 -7
- package/modules/government/charter-advice.js +10 -3
- package/modules/government/charter.js +88 -4
- package/modules/government/migrations/government_039_vote_cast_via_filed.sql +22 -0
- package/modules/government/routes/government.js +12 -12
- package/modules/government/sole-member.js +75 -0
- package/modules/hall-ui/public/genesis-home.js +12 -5
- package/modules/onboarding/genesis-home.js +14 -2
- package/modules/platform-identity/module.json +1 -1
- package/modules/platform-identity/project-standing.js +49 -0
- package/modules/platform-identity/routes/my-projects.js +8 -0
- package/modules/provisioning/grants.js +126 -0
- package/modules/provisioning/migrations/provisioning_038_render_promote.sql +43 -0
- package/modules/provisioning/migrations/provisioning_039_project_grants.sql +40 -0
- package/modules/provisioning/module.json +2 -1
- package/modules/provisioning/project-refusal.js +107 -0
- package/modules/provisioning/provisioning.js +2 -2
- package/modules/provisioning/render-lookup.js +36 -1
- package/modules/provisioning/render-promote.js +80 -0
- package/modules/provisioning/route-helpers.js +70 -16
- package/modules/provisioning/routes/env-manifest.js +21 -5
- package/modules/provisioning/routes/grants.js +141 -0
- package/modules/provisioning/routes/provisioning.js +8 -7
- package/modules/provisioning/routes/render-standup.js +82 -3
- package/modules/public-landing/public/projects.html +99 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +18 -0
- package/scripts/bongos/genesis.js +11 -1
- package/scripts/bongos/government-walk-sole.js +41 -0
- package/scripts/bongos/government-walk.js +15 -16
- package/scripts/bongos/provision-render-common.js +48 -0
- package/scripts/bongos/provision-render-promote.js +93 -0
- package/scripts/bongos/provision-render-sandbox.js +14 -2
- package/scripts/bongos/provision-render.js +4 -36
- package/scripts/bongos/provision.js +1 -0
- package/scripts/bongos/render-api.js +17 -2
- package/scripts/gds/government-walk-sole.js +6 -0
- package/scripts/gds/provision-render-common.js +6 -0
- package/scripts/gds/provision-render-promote.js +6 -0
- package/src/module-api.js +1 -1
- package/tests/fleet_cost_view.mjs +2 -0
- package/tests/genesis_government.mjs +5 -1
- package/tests/genesis_home.mjs +17 -0
- package/tests/government_charter_advice.mjs +49 -0
- package/tests/government_charter_forms.mjs +14 -3
- package/tests/government_seed.mjs +1 -0
- package/tests/government_sole_member.mjs +153 -0
- package/tests/project_catalog_routes.mjs +2 -0
- package/tests/provisioning_env_manifest.mjs +4 -0
- package/tests/provisioning_env_manifest_edit_delete.mjs +2 -0
- package/tests/provisioning_project_grants.mjs +458 -0
- package/tests/provisioning_project_owner_gate.mjs +3 -1
- package/tests/provisioning_project_refusal.mjs +316 -0
- package/tests/provisioning_render_route.mjs +1 -1
- package/tests/provisioning_restart.mjs +2 -0
- package/tests/provisioning_settings.mjs +2 -0
- package/tests/provisioning_settings_apply.mjs +1 -1
- package/tests/provisioning_teardown_intent.mjs +2 -2
- package/tests/render_promote.mjs +309 -0
- package/tests/render_sandbox.mjs +9 -4
package/docs/api/openapi.json
CHANGED
|
@@ -24658,14 +24658,7 @@
|
|
|
24658
24658
|
],
|
|
24659
24659
|
"responses": {
|
|
24660
24660
|
"200": {
|
|
24661
|
-
"description": "Success."
|
|
24662
|
-
"content": {
|
|
24663
|
-
"application/json": {
|
|
24664
|
-
"schema": {
|
|
24665
|
-
"$ref": "#/components/schemas/GetProvisioningInstancesIdResponse"
|
|
24666
|
-
}
|
|
24667
|
-
}
|
|
24668
|
-
}
|
|
24661
|
+
"description": "Success."
|
|
24669
24662
|
},
|
|
24670
24663
|
"400": {
|
|
24671
24664
|
"$ref": "#/components/responses/BadRequest"
|
|
@@ -25433,6 +25426,173 @@
|
|
|
25433
25426
|
]
|
|
25434
25427
|
}
|
|
25435
25428
|
},
|
|
25429
|
+
"/provisioning/instances/{id}/grants": {
|
|
25430
|
+
"get": {
|
|
25431
|
+
"operationId": "get_provisioning_instances_id_grants",
|
|
25432
|
+
"tags": [
|
|
25433
|
+
"provisioning"
|
|
25434
|
+
],
|
|
25435
|
+
"summary": "GET /provisioning/instances/:id/grants",
|
|
25436
|
+
"description": "GET /provisioning/instances/:id/grants — the project's live grants. rank: any authenticated builder, own resource (owner; archon may read any). 404 otherwise.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
25437
|
+
"x-rank": "any-builder",
|
|
25438
|
+
"x-source": "modules/provisioning/routes/grants.js",
|
|
25439
|
+
"parameters": [
|
|
25440
|
+
{
|
|
25441
|
+
"name": "id",
|
|
25442
|
+
"in": "path",
|
|
25443
|
+
"required": true,
|
|
25444
|
+
"schema": {
|
|
25445
|
+
"type": "string"
|
|
25446
|
+
},
|
|
25447
|
+
"description": "Path parameter `id`."
|
|
25448
|
+
}
|
|
25449
|
+
],
|
|
25450
|
+
"responses": {
|
|
25451
|
+
"200": {
|
|
25452
|
+
"description": "Success.",
|
|
25453
|
+
"content": {
|
|
25454
|
+
"application/json": {
|
|
25455
|
+
"schema": {
|
|
25456
|
+
"$ref": "#/components/schemas/GetProvisioningInstancesIdGrantsResponse"
|
|
25457
|
+
}
|
|
25458
|
+
}
|
|
25459
|
+
}
|
|
25460
|
+
},
|
|
25461
|
+
"400": {
|
|
25462
|
+
"$ref": "#/components/responses/BadRequest"
|
|
25463
|
+
},
|
|
25464
|
+
"401": {
|
|
25465
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
25466
|
+
},
|
|
25467
|
+
"403": {
|
|
25468
|
+
"$ref": "#/components/responses/Forbidden"
|
|
25469
|
+
},
|
|
25470
|
+
"404": {
|
|
25471
|
+
"$ref": "#/components/responses/NotFound"
|
|
25472
|
+
}
|
|
25473
|
+
},
|
|
25474
|
+
"security": [
|
|
25475
|
+
{
|
|
25476
|
+
"builderSession": []
|
|
25477
|
+
}
|
|
25478
|
+
]
|
|
25479
|
+
},
|
|
25480
|
+
"post": {
|
|
25481
|
+
"operationId": "post_provisioning_instances_id_grants",
|
|
25482
|
+
"tags": [
|
|
25483
|
+
"provisioning"
|
|
25484
|
+
],
|
|
25485
|
+
"summary": "POST /provisioning/instances/:id/grants",
|
|
25486
|
+
"description": "POST /provisioning/instances/:id/grants { github_login } — give a person access. rank: any authenticated builder, own resource, OWNER ONLY (no archon override). 404 for anyone else, so a stranger learns nothing about the id.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
25487
|
+
"x-rank": "any-builder",
|
|
25488
|
+
"x-source": "modules/provisioning/routes/grants.js",
|
|
25489
|
+
"parameters": [
|
|
25490
|
+
{
|
|
25491
|
+
"name": "id",
|
|
25492
|
+
"in": "path",
|
|
25493
|
+
"required": true,
|
|
25494
|
+
"schema": {
|
|
25495
|
+
"type": "string"
|
|
25496
|
+
},
|
|
25497
|
+
"description": "Path parameter `id`."
|
|
25498
|
+
}
|
|
25499
|
+
],
|
|
25500
|
+
"requestBody": {
|
|
25501
|
+
"required": true,
|
|
25502
|
+
"content": {
|
|
25503
|
+
"application/json": {
|
|
25504
|
+
"schema": {
|
|
25505
|
+
"$ref": "#/components/schemas/PostProvisioningInstancesIdGrantsRequest"
|
|
25506
|
+
}
|
|
25507
|
+
}
|
|
25508
|
+
},
|
|
25509
|
+
"x-validated": true
|
|
25510
|
+
},
|
|
25511
|
+
"responses": {
|
|
25512
|
+
"200": {
|
|
25513
|
+
"description": "Success."
|
|
25514
|
+
},
|
|
25515
|
+
"400": {
|
|
25516
|
+
"$ref": "#/components/responses/ValidationFailed"
|
|
25517
|
+
},
|
|
25518
|
+
"401": {
|
|
25519
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
25520
|
+
},
|
|
25521
|
+
"403": {
|
|
25522
|
+
"$ref": "#/components/responses/Forbidden"
|
|
25523
|
+
},
|
|
25524
|
+
"404": {
|
|
25525
|
+
"$ref": "#/components/responses/NotFound"
|
|
25526
|
+
}
|
|
25527
|
+
},
|
|
25528
|
+
"security": [
|
|
25529
|
+
{
|
|
25530
|
+
"builderSession": []
|
|
25531
|
+
}
|
|
25532
|
+
]
|
|
25533
|
+
}
|
|
25534
|
+
},
|
|
25535
|
+
"/provisioning/instances/{id}/grants/{grantId}": {
|
|
25536
|
+
"delete": {
|
|
25537
|
+
"operationId": "delete_provisioning_instances_id_grants_grantId",
|
|
25538
|
+
"tags": [
|
|
25539
|
+
"provisioning"
|
|
25540
|
+
],
|
|
25541
|
+
"summary": "DELETE /provisioning/instances/:id/grants/:grantId",
|
|
25542
|
+
"description": "DELETE /provisioning/instances/:id/grants/:grantId — take access back. rank: any authenticated builder: the project's owner, an archon, or the grantee removing their OWN grant — decided in the handler, because \"whose grant is it\" is a fact of the row. Anyone else gets the same 404 a missing project gets.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
25543
|
+
"x-rank": "any-builder",
|
|
25544
|
+
"x-source": "modules/provisioning/routes/grants.js",
|
|
25545
|
+
"parameters": [
|
|
25546
|
+
{
|
|
25547
|
+
"name": "id",
|
|
25548
|
+
"in": "path",
|
|
25549
|
+
"required": true,
|
|
25550
|
+
"schema": {
|
|
25551
|
+
"type": "string"
|
|
25552
|
+
},
|
|
25553
|
+
"description": "Path parameter `id`."
|
|
25554
|
+
},
|
|
25555
|
+
{
|
|
25556
|
+
"name": "grantId",
|
|
25557
|
+
"in": "path",
|
|
25558
|
+
"required": true,
|
|
25559
|
+
"schema": {
|
|
25560
|
+
"type": "string"
|
|
25561
|
+
},
|
|
25562
|
+
"description": "Path parameter `grantId`."
|
|
25563
|
+
}
|
|
25564
|
+
],
|
|
25565
|
+
"responses": {
|
|
25566
|
+
"200": {
|
|
25567
|
+
"description": "Success.",
|
|
25568
|
+
"content": {
|
|
25569
|
+
"application/json": {
|
|
25570
|
+
"schema": {
|
|
25571
|
+
"$ref": "#/components/schemas/DeleteProvisioningInstancesIdGrantsGrantIdResponse"
|
|
25572
|
+
}
|
|
25573
|
+
}
|
|
25574
|
+
}
|
|
25575
|
+
},
|
|
25576
|
+
"400": {
|
|
25577
|
+
"$ref": "#/components/responses/BadRequest"
|
|
25578
|
+
},
|
|
25579
|
+
"401": {
|
|
25580
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
25581
|
+
},
|
|
25582
|
+
"403": {
|
|
25583
|
+
"$ref": "#/components/responses/Forbidden"
|
|
25584
|
+
},
|
|
25585
|
+
"404": {
|
|
25586
|
+
"$ref": "#/components/responses/NotFound"
|
|
25587
|
+
}
|
|
25588
|
+
},
|
|
25589
|
+
"security": [
|
|
25590
|
+
{
|
|
25591
|
+
"builderSession": []
|
|
25592
|
+
}
|
|
25593
|
+
]
|
|
25594
|
+
}
|
|
25595
|
+
},
|
|
25436
25596
|
"/provisioning/instances/{id}/invite-suggestions": {
|
|
25437
25597
|
"get": {
|
|
25438
25598
|
"operationId": "get_provisioning_instances_id_invite_suggestions",
|
|
@@ -25815,6 +25975,125 @@
|
|
|
25815
25975
|
]
|
|
25816
25976
|
}
|
|
25817
25977
|
},
|
|
25978
|
+
"/provisioning/instances/{id}/render/promote": {
|
|
25979
|
+
"post": {
|
|
25980
|
+
"operationId": "post_provisioning_instances_id_render_promote",
|
|
25981
|
+
"tags": [
|
|
25982
|
+
"provisioning"
|
|
25983
|
+
],
|
|
25984
|
+
"summary": "POST /provisioning/instances/:id/render/promote",
|
|
25985
|
+
"description": "POST /provisioning/instances/:id/render/promote — rank: any authenticated builder, and OWNER ONLY: the key and the live app are the owner's, so the server decides only the owner may move it (an archon on someone else's project gets the stranger's 404). Takes the change the owner chose (`commit_id`) and the change live ran when they looked (`expect_live_commit`); the runner refuses if either moved. This is the ONLY way Bongos moves a live app that has a sandbox, and the reply is a receipt: nothing is live yet.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
25986
|
+
"x-rank": "any-builder",
|
|
25987
|
+
"x-source": "modules/provisioning/routes/render-standup.js",
|
|
25988
|
+
"parameters": [
|
|
25989
|
+
{
|
|
25990
|
+
"name": "id",
|
|
25991
|
+
"in": "path",
|
|
25992
|
+
"required": true,
|
|
25993
|
+
"schema": {
|
|
25994
|
+
"type": "string"
|
|
25995
|
+
},
|
|
25996
|
+
"description": "Path parameter `id`."
|
|
25997
|
+
}
|
|
25998
|
+
],
|
|
25999
|
+
"requestBody": {
|
|
26000
|
+
"required": true,
|
|
26001
|
+
"content": {
|
|
26002
|
+
"application/json": {
|
|
26003
|
+
"schema": {
|
|
26004
|
+
"$ref": "#/components/schemas/PostProvisioningInstancesIdRenderPromoteRequest"
|
|
26005
|
+
}
|
|
26006
|
+
}
|
|
26007
|
+
},
|
|
26008
|
+
"x-validated": true
|
|
26009
|
+
},
|
|
26010
|
+
"responses": {
|
|
26011
|
+
"200": {
|
|
26012
|
+
"description": "Success.",
|
|
26013
|
+
"content": {
|
|
26014
|
+
"application/json": {
|
|
26015
|
+
"schema": {
|
|
26016
|
+
"$ref": "#/components/schemas/PostProvisioningInstancesIdRenderPromoteResponse"
|
|
26017
|
+
}
|
|
26018
|
+
}
|
|
26019
|
+
}
|
|
26020
|
+
},
|
|
26021
|
+
"400": {
|
|
26022
|
+
"$ref": "#/components/responses/ValidationFailed"
|
|
26023
|
+
},
|
|
26024
|
+
"401": {
|
|
26025
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
26026
|
+
},
|
|
26027
|
+
"403": {
|
|
26028
|
+
"$ref": "#/components/responses/Forbidden"
|
|
26029
|
+
},
|
|
26030
|
+
"404": {
|
|
26031
|
+
"$ref": "#/components/responses/NotFound"
|
|
26032
|
+
}
|
|
26033
|
+
},
|
|
26034
|
+
"security": [
|
|
26035
|
+
{
|
|
26036
|
+
"builderSession": []
|
|
26037
|
+
}
|
|
26038
|
+
]
|
|
26039
|
+
}
|
|
26040
|
+
},
|
|
26041
|
+
"/provisioning/instances/{id}/render/promote/look": {
|
|
26042
|
+
"post": {
|
|
26043
|
+
"operationId": "post_provisioning_instances_id_render_promote_look",
|
|
26044
|
+
"tags": [
|
|
26045
|
+
"provisioning"
|
|
26046
|
+
],
|
|
26047
|
+
"summary": "POST /provisioning/instances/:id/render/promote/look",
|
|
26048
|
+
"description": "POST /provisioning/instances/:id/render/promote/look — rank: any authenticated builder, and OWNER ONLY. What is waiting on the sandbox to go live (ADR 0406 §2, task 1005290): the change the live app runs, and every change that has run on the sandbox since, newest first. A read-only look at Render on the owner's key held for this one request (ADR 0348 as widened by ADR 0406 §11): GET only, never stored, logged or sent back.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
26049
|
+
"x-rank": "any-builder",
|
|
26050
|
+
"x-source": "modules/provisioning/routes/render-standup.js",
|
|
26051
|
+
"parameters": [
|
|
26052
|
+
{
|
|
26053
|
+
"name": "id",
|
|
26054
|
+
"in": "path",
|
|
26055
|
+
"required": true,
|
|
26056
|
+
"schema": {
|
|
26057
|
+
"type": "string"
|
|
26058
|
+
},
|
|
26059
|
+
"description": "Path parameter `id`."
|
|
26060
|
+
}
|
|
26061
|
+
],
|
|
26062
|
+
"requestBody": {
|
|
26063
|
+
"required": true,
|
|
26064
|
+
"content": {
|
|
26065
|
+
"application/json": {
|
|
26066
|
+
"schema": {
|
|
26067
|
+
"$ref": "#/components/schemas/PostProvisioningInstancesIdRenderPromoteLookRequest"
|
|
26068
|
+
}
|
|
26069
|
+
}
|
|
26070
|
+
},
|
|
26071
|
+
"x-validated": true
|
|
26072
|
+
},
|
|
26073
|
+
"responses": {
|
|
26074
|
+
"200": {
|
|
26075
|
+
"description": "Success."
|
|
26076
|
+
},
|
|
26077
|
+
"400": {
|
|
26078
|
+
"$ref": "#/components/responses/ValidationFailed"
|
|
26079
|
+
},
|
|
26080
|
+
"401": {
|
|
26081
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
26082
|
+
},
|
|
26083
|
+
"403": {
|
|
26084
|
+
"$ref": "#/components/responses/Forbidden"
|
|
26085
|
+
},
|
|
26086
|
+
"404": {
|
|
26087
|
+
"$ref": "#/components/responses/NotFound"
|
|
26088
|
+
}
|
|
26089
|
+
},
|
|
26090
|
+
"security": [
|
|
26091
|
+
{
|
|
26092
|
+
"builderSession": []
|
|
26093
|
+
}
|
|
26094
|
+
]
|
|
26095
|
+
}
|
|
26096
|
+
},
|
|
25818
26097
|
"/provisioning/instances/{id}/render/sandbox": {
|
|
25819
26098
|
"post": {
|
|
25820
26099
|
"operationId": "post_provisioning_instances_id_render_sandbox",
|
|
@@ -34224,6 +34503,21 @@
|
|
|
34224
34503
|
"message"
|
|
34225
34504
|
]
|
|
34226
34505
|
},
|
|
34506
|
+
"DeleteProvisioningInstancesIdGrantsGrantIdResponse": {
|
|
34507
|
+
"type": "object",
|
|
34508
|
+
"properties": {
|
|
34509
|
+
"ok": {
|
|
34510
|
+
"type": "boolean"
|
|
34511
|
+
},
|
|
34512
|
+
"revoked": {
|
|
34513
|
+
"type": "boolean"
|
|
34514
|
+
}
|
|
34515
|
+
},
|
|
34516
|
+
"required": [
|
|
34517
|
+
"ok",
|
|
34518
|
+
"revoked"
|
|
34519
|
+
]
|
|
34520
|
+
},
|
|
34227
34521
|
"DeleteSpecialitiesIdDocumentsDocIdResponse": {
|
|
34228
34522
|
"type": "object",
|
|
34229
34523
|
"properties": {
|
|
@@ -36079,6 +36373,19 @@
|
|
|
36079
36373
|
"note"
|
|
36080
36374
|
]
|
|
36081
36375
|
},
|
|
36376
|
+
"GetProvisioningInstancesIdGrantsResponse": {
|
|
36377
|
+
"type": "object",
|
|
36378
|
+
"properties": {
|
|
36379
|
+
"grants": {},
|
|
36380
|
+
"levels": {},
|
|
36381
|
+
"limit": {}
|
|
36382
|
+
},
|
|
36383
|
+
"required": [
|
|
36384
|
+
"grants",
|
|
36385
|
+
"levels",
|
|
36386
|
+
"limit"
|
|
36387
|
+
]
|
|
36388
|
+
},
|
|
36082
36389
|
"GetProvisioningInstancesIdInviteSuggestionsResponse": {
|
|
36083
36390
|
"type": "object",
|
|
36084
36391
|
"properties": {
|
|
@@ -36118,6 +36425,7 @@
|
|
|
36118
36425
|
},
|
|
36119
36426
|
"app": {},
|
|
36120
36427
|
"sandbox": {},
|
|
36428
|
+
"promote": {},
|
|
36121
36429
|
"env_vars": {},
|
|
36122
36430
|
"values_held": {
|
|
36123
36431
|
"type": "boolean"
|
|
@@ -36127,25 +36435,11 @@
|
|
|
36127
36435
|
"ok",
|
|
36128
36436
|
"app",
|
|
36129
36437
|
"sandbox",
|
|
36438
|
+
"promote",
|
|
36130
36439
|
"env_vars",
|
|
36131
36440
|
"values_held"
|
|
36132
36441
|
]
|
|
36133
36442
|
},
|
|
36134
|
-
"GetProvisioningInstancesIdResponse": {
|
|
36135
|
-
"type": "object",
|
|
36136
|
-
"properties": {
|
|
36137
|
-
"instance": {},
|
|
36138
|
-
"open_intent": {},
|
|
36139
|
-
"github_app": {},
|
|
36140
|
-
"github_setup": {}
|
|
36141
|
-
},
|
|
36142
|
-
"required": [
|
|
36143
|
-
"instance",
|
|
36144
|
-
"open_intent",
|
|
36145
|
-
"github_app",
|
|
36146
|
-
"github_setup"
|
|
36147
|
-
]
|
|
36148
|
-
},
|
|
36149
36443
|
"GetProvisioningInstancesIdSettingsResponse": {
|
|
36150
36444
|
"type": "object",
|
|
36151
36445
|
"properties": {
|
|
@@ -40397,13 +40691,17 @@
|
|
|
40397
40691
|
},
|
|
40398
40692
|
"amendment": {},
|
|
40399
40693
|
"item": {},
|
|
40400
|
-
"reads_as": {}
|
|
40694
|
+
"reads_as": {},
|
|
40695
|
+
"what_happens_next": {},
|
|
40696
|
+
"decided": {}
|
|
40401
40697
|
},
|
|
40402
40698
|
"required": [
|
|
40403
40699
|
"ok",
|
|
40404
40700
|
"amendment",
|
|
40405
40701
|
"item",
|
|
40406
|
-
"reads_as"
|
|
40702
|
+
"reads_as",
|
|
40703
|
+
"what_happens_next",
|
|
40704
|
+
"decided"
|
|
40407
40705
|
]
|
|
40408
40706
|
},
|
|
40409
40707
|
"PostGovernmentBoardDecisionRulesRequest": {
|
|
@@ -40430,13 +40728,15 @@
|
|
|
40430
40728
|
},
|
|
40431
40729
|
"amendment": {},
|
|
40432
40730
|
"item": {},
|
|
40433
|
-
"rules": {}
|
|
40731
|
+
"rules": {},
|
|
40732
|
+
"decided": {}
|
|
40434
40733
|
},
|
|
40435
40734
|
"required": [
|
|
40436
40735
|
"ok",
|
|
40437
40736
|
"amendment",
|
|
40438
40737
|
"item",
|
|
40439
|
-
"rules"
|
|
40738
|
+
"rules",
|
|
40739
|
+
"decided"
|
|
40440
40740
|
]
|
|
40441
40741
|
},
|
|
40442
40742
|
"PostGovernmentBoardItemsItemIdVotesRequest": {
|
|
@@ -40510,12 +40810,14 @@
|
|
|
40510
40810
|
"type": "boolean"
|
|
40511
40811
|
},
|
|
40512
40812
|
"amendment": {},
|
|
40513
|
-
"item": {}
|
|
40813
|
+
"item": {},
|
|
40814
|
+
"decided": {}
|
|
40514
40815
|
},
|
|
40515
40816
|
"required": [
|
|
40516
40817
|
"ok",
|
|
40517
40818
|
"amendment",
|
|
40518
|
-
"item"
|
|
40819
|
+
"item",
|
|
40820
|
+
"decided"
|
|
40519
40821
|
]
|
|
40520
40822
|
},
|
|
40521
40823
|
"PostGovernmentBoardLawsRequest": {
|
|
@@ -40542,13 +40844,15 @@
|
|
|
40542
40844
|
},
|
|
40543
40845
|
"amendment": {},
|
|
40544
40846
|
"item": {},
|
|
40545
|
-
"proposal": {}
|
|
40847
|
+
"proposal": {},
|
|
40848
|
+
"decided": {}
|
|
40546
40849
|
},
|
|
40547
40850
|
"required": [
|
|
40548
40851
|
"ok",
|
|
40549
40852
|
"amendment",
|
|
40550
40853
|
"item",
|
|
40551
|
-
"proposal"
|
|
40854
|
+
"proposal",
|
|
40855
|
+
"decided"
|
|
40552
40856
|
]
|
|
40553
40857
|
},
|
|
40554
40858
|
"PostGovernmentBoardMattersRequest": {
|
|
@@ -40615,14 +40919,16 @@
|
|
|
40615
40919
|
"preset": {},
|
|
40616
40920
|
"amendment": {},
|
|
40617
40921
|
"item": {},
|
|
40618
|
-
"proposal": {}
|
|
40922
|
+
"proposal": {},
|
|
40923
|
+
"decided": {}
|
|
40619
40924
|
},
|
|
40620
40925
|
"required": [
|
|
40621
40926
|
"ok",
|
|
40622
40927
|
"preset",
|
|
40623
40928
|
"amendment",
|
|
40624
40929
|
"item",
|
|
40625
|
-
"proposal"
|
|
40930
|
+
"proposal",
|
|
40931
|
+
"decided"
|
|
40626
40932
|
]
|
|
40627
40933
|
},
|
|
40628
40934
|
"PostGovernmentBuildoutsRequest": {
|
|
@@ -42881,6 +43187,73 @@
|
|
|
42881
43187
|
"expires_at"
|
|
42882
43188
|
]
|
|
42883
43189
|
},
|
|
43190
|
+
"PostProvisioningInstancesIdGrantsRequest": {
|
|
43191
|
+
"type": "object",
|
|
43192
|
+
"properties": {
|
|
43193
|
+
"github_login": {
|
|
43194
|
+
"type": "string",
|
|
43195
|
+
"maxLength": 39
|
|
43196
|
+
}
|
|
43197
|
+
},
|
|
43198
|
+
"required": [
|
|
43199
|
+
"github_login"
|
|
43200
|
+
],
|
|
43201
|
+
"additionalProperties": false
|
|
43202
|
+
},
|
|
43203
|
+
"PostProvisioningInstancesIdRenderPromoteLookRequest": {
|
|
43204
|
+
"type": "object",
|
|
43205
|
+
"properties": {
|
|
43206
|
+
"key": {
|
|
43207
|
+
"type": "string",
|
|
43208
|
+
"maxLength": 200
|
|
43209
|
+
}
|
|
43210
|
+
},
|
|
43211
|
+
"required": [
|
|
43212
|
+
"key"
|
|
43213
|
+
],
|
|
43214
|
+
"additionalProperties": false
|
|
43215
|
+
},
|
|
43216
|
+
"PostProvisioningInstancesIdRenderPromoteRequest": {
|
|
43217
|
+
"type": "object",
|
|
43218
|
+
"properties": {
|
|
43219
|
+
"key": {
|
|
43220
|
+
"type": "string",
|
|
43221
|
+
"maxLength": 200
|
|
43222
|
+
},
|
|
43223
|
+
"commit_id": {
|
|
43224
|
+
"type": "string",
|
|
43225
|
+
"maxLength": 64
|
|
43226
|
+
},
|
|
43227
|
+
"expect_live_commit": {
|
|
43228
|
+
"type": "string",
|
|
43229
|
+
"maxLength": 64
|
|
43230
|
+
}
|
|
43231
|
+
},
|
|
43232
|
+
"required": [
|
|
43233
|
+
"key",
|
|
43234
|
+
"commit_id"
|
|
43235
|
+
],
|
|
43236
|
+
"additionalProperties": false
|
|
43237
|
+
},
|
|
43238
|
+
"PostProvisioningInstancesIdRenderPromoteResponse": {
|
|
43239
|
+
"type": "object",
|
|
43240
|
+
"properties": {
|
|
43241
|
+
"ok": {
|
|
43242
|
+
"type": "boolean"
|
|
43243
|
+
},
|
|
43244
|
+
"queued": {
|
|
43245
|
+
"type": "boolean"
|
|
43246
|
+
},
|
|
43247
|
+
"action": {},
|
|
43248
|
+
"message": {}
|
|
43249
|
+
},
|
|
43250
|
+
"required": [
|
|
43251
|
+
"ok",
|
|
43252
|
+
"queued",
|
|
43253
|
+
"action",
|
|
43254
|
+
"message"
|
|
43255
|
+
]
|
|
43256
|
+
},
|
|
42884
43257
|
"PostProvisioningInstancesIdRenderRequest": {
|
|
42885
43258
|
"type": "object",
|
|
42886
43259
|
"properties": {
|
|
@@ -45622,9 +45995,9 @@
|
|
|
45622
45995
|
"description": "A required dependency/feature is not configured or is temporarily down."
|
|
45623
45996
|
}
|
|
45624
45997
|
},
|
|
45625
|
-
"x-endpoint-count":
|
|
45626
|
-
"x-schema-count":
|
|
45998
|
+
"x-endpoint-count": 736,
|
|
45999
|
+
"x-schema-count": 764,
|
|
45627
46000
|
"x-undocumented-bodies": 12,
|
|
45628
|
-
"x-response-schemas":
|
|
46001
|
+
"x-response-schemas": 475,
|
|
45629
46002
|
"x-generated-by": "scripts/bongos/gen-api-docs.js"
|
|
45630
46003
|
}
|
package/docs/api-reference.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Bongos API reference
|
|
4
4
|
|
|
5
|
-
> **Generated from the live route files** — the route file is authoritative.
|
|
5
|
+
> **Generated from the live route files** — the route file is authoritative. 736 endpoints across 125 route files.
|
|
6
6
|
> Machine-readable spec: [`docs/api/openapi.json`](api/openapi.json) (OpenAPI 3.1). Rendered docs site: **`/docs`** (e.g. `cloudbongos.com/docs`).
|
|
7
7
|
|
|
8
8
|
Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust-boundary-server-enforced-permissions.md)): `public` < `any-builder` < `metic+archon` < `archon`.
|
|
@@ -870,7 +870,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
870
870
|
| POST | `/api/bongos/projects/invite` | `metic+archon` | `client_id`, `github_login` | own-or-metic in effect: where to invite a builder into a project, asked by a `project.curate` holder OR the project's OWN OWNER (task 100… |
|
|
871
871
|
| POST | `/api/bongos/projects/invite-guild` | `metic+archon` | `client_id`, `guild` | own-or-metic in effect, the SAME gate as POST /projects/invite above and for the same reasons (a non-inviter gets that route's unchanged … |
|
|
872
872
|
|
|
873
|
-
## `provisioning` (
|
|
873
|
+
## `provisioning` (53)
|
|
874
874
|
|
|
875
875
|
| Method | Path | Rank | Body | Description |
|
|
876
876
|
|---|---|---|---|---|
|
|
@@ -899,6 +899,9 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
899
899
|
| POST | `/api/bongos/provisioning/instances/:id/force-teardown` | `metic+archon` | — | POST /provisioning/instances/:id/force-teardown — Archon tears down ANY instance. |
|
|
900
900
|
| POST | `/api/bongos/provisioning/instances/:id/github-app` | `any-builder` | `account`, `org` | POST /provisioning/instances/:id/github-app — mint a GitHub-App-Manifest onboarding link for the caller's OWN instance (task 2080, ADR 01… |
|
|
901
901
|
| POST | `/api/bongos/provisioning/instances/:id/github-app/pick-up` | `any-builder` | — | POST /provisioning/instances/:id/github-app/pick-up — "Pick up where it stopped" and "Check again" (task 1004652). |
|
|
902
|
+
| GET | `/api/bongos/provisioning/instances/:id/grants` | `any-builder` | — | GET /provisioning/instances/:id/grants — the project's live grants. |
|
|
903
|
+
| POST | `/api/bongos/provisioning/instances/:id/grants` | `any-builder` | `github_login` | POST /provisioning/instances/:id/grants { github_login } — give a person access. |
|
|
904
|
+
| DELETE | `/api/bongos/provisioning/instances/:id/grants/:grantId` | `any-builder` | — | DELETE /provisioning/instances/:id/grants/:grantId — take access back. |
|
|
902
905
|
| GET | `/api/bongos/provisioning/instances/:id/invite-suggestions` | `any-builder` | — | ── Who is worth inviting (BV1.R28, task 1002347, goal 1000046 C6) ──────── GET /provisioning/instances/:id/invite-suggestions — turn the … |
|
|
903
906
|
| PUT | `/api/bongos/provisioning/instances/:id/logo` | `any-builder` | `image_b64`, `content_type` | PUT …/logo — rank: any authenticated builder (own resource; archon may change any). |
|
|
904
907
|
| DELETE | `/api/bongos/provisioning/instances/:id/logo` | `any-builder` | validated | DELETE …/logo — rank: any authenticated builder (own resource; archon may change any). |
|
|
@@ -906,6 +909,8 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
906
909
|
| PATCH | `/api/bongos/provisioning/instances/:id/look` | `any-builder` | `look`, `night_tint`, `accent` | PATCH — rank: any authenticated builder (own resource; archon may change any). |
|
|
907
910
|
| GET | `/api/bongos/provisioning/instances/:id/render` | `any-builder` | — | GET /provisioning/instances/:id/render — rank: any authenticated builder, and OWNER ONLY, like the POST (task 1004353). |
|
|
908
911
|
| POST | `/api/bongos/provisioning/instances/:id/render` | `any-builder` | `key`, `owner_id`, `mode`, `service_id`, `web_plan`, `db_plan`, `region`, `runtime`, `build_command`, `start_command`, `database` | POST /provisioning/instances/:id/render — rank: any authenticated builder, and OWNER ONLY: the key is the owner's and so is the account i… |
|
|
912
|
+
| POST | `/api/bongos/provisioning/instances/:id/render/promote` | `any-builder` | `key`, `commit_id`, `expect_live_commit` | POST /provisioning/instances/:id/render/promote — rank: any authenticated builder, and OWNER ONLY: the key and the live app are the owner… |
|
|
913
|
+
| POST | `/api/bongos/provisioning/instances/:id/render/promote/look` | `any-builder` | `key` | POST /provisioning/instances/:id/render/promote/look — rank: any authenticated builder, and OWNER ONLY. |
|
|
909
914
|
| POST | `/api/bongos/provisioning/instances/:id/render/sandbox` | `any-builder` | `key` | POST /provisioning/instances/:id/render/sandbox — rank: any authenticated builder, and OWNER ONLY, like every Render route. |
|
|
910
915
|
| POST | `/api/bongos/provisioning/instances/:id/repo-private` | `any-builder` | validated | POST /provisioning/instances/:id/repo-private — rank: any authenticated builder, and OWNER ONLY: no archon override, because the runner f… |
|
|
911
916
|
| POST | `/api/bongos/provisioning/instances/:id/restart` | `any-builder` | — | POST /provisioning/instances/:id/restart — restart an ACTIVE project the heartbeat cannot reach (task 1003238). |
|