Repository navigation
v0.1.0-alpha.1
Pre-release
Pre-release
·
4 commits
to main
since this release
First prerelease of Shipkeep. To install it, follow docs/INSTALL.md with the SHIPKEEP_IMAGE line at the bottom of this page.
Use it on servers you can afford to lose. These published artifacts were installed and exercised end to end on one machine with Docker: the control plane from this image, a server installed with the command from the Servers page, deployments, a rollback and a restart of the server's container. It has not run on a real server yet, nor with a publicly trusted certificate or a real mail provider. Please report what breaks.
Changelog
- 8eeef12: [M8.3a] Install verified node agent and Caddy (#171) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 45bf5ff: fix(api): pull Docker Hub images under the name Docker records (#304) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 5ec2049: fix(api): three findings of the security audit (#303) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 587203c: fix: findings of the first end-to-end local installation (#300) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- acf26b6: chore(release): publish the image reference with its digest (#299) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 4cbe1cd: feat(deploy): production compose file and install procedure (#298) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- ac2985b: chore(release): GoReleaser configuration and control plane image (#297) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- ad0930c: chore(landing): search engine and AI assistant metadata (#296) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- bbc3799: [M3.6b1] Servers page addresses and domain match on the application page (#293) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 4a4d3de: [#263] Show the agent actions run for an application (#294) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 59fbd99: [M3.6b1] Domain check: points at a server running the application (#290) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 1255066: [M3.6b1] Node public addresses for domain verification (#289) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- ea2a3f1: [#263] List the agent actions run for an application (#292) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- fc043de: [#263] Record the deployment that requested each agent action (#291) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- d11c8a8: [#211] Recheck the landing comparison against primary sources (#288) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 38e66ca: Apply the neutral accent from the updated design (#287) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 0e1391f: [#203] Print development emails in the terminal (#286) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- f4c9229: [#203] Set up GitHub Discussions (#283) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 12aaf56: [#203] Number the steps to run Shipkeep and to contribute (#282) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- e98abe3: [#203] Update the landing page and CodeQL after going public (#281) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- dee897a: [#203] Rewrite CLAUDE.md and the docs for a public repository (#280) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 758832e: [#203] Sample data on reserved domains, Preview label on New resource (#279) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 232fa22: [#274] Override vulnerable minimatch and glob (#278) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 43aea00: [#203] Enforce DCO and prepare the texts for going public (#277) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- eb8f7bf: Web: Shipkeep favicon instead of the Nx scaffold icon (#275) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 6df216c: [#137] Make CI green on main (#276) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 6437fcc: [#205 #206] Web: dashboard and sign-in from the design (#249) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- ee82710: [#204] Web: dark workspace, sidebar, overview and tabs from the design (#248) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- f24ee17: Make the README welcoming, with preview images (#199) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 6c14e67: Landing: comparison table, example requests card, English hero (#198) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 0a134e5: Add the static landing page deployed on Vercel (#197) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- f5b826d: Update the PLAN's next tasks (#196) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- f93ed1b: [M3.8a] Fail-closed Compose validator (#195) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- f0b78cb: [M8.2b] CLI: deploy, rollback and server removal (#194) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 7c92553: Fix the token picker: offer each permission at the level the API accepts (#193) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 3c8d140: [M8.2a] CLI: login, init, status and secrets (#192) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- afdeef1: [M2.6] Strict axe check on sign-in and landing pages (#191) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- ee67371: [M2.3f2] Browser acceptance for tenants and roles, with the defects it found (#190) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 618c732: Fix the blank environment page: precompile the config validator for the CSP (#189) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 531bbec: Run the domain and rollback integration suites, which never ran (#188) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 795f250: [M2.5b] Web: shared confirmation by typed name (#187) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 32ec745: [M2.3f1b3] Web: API token scopes and project tokens (#186) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- c43be60: [M2.3f1b2] Web: members and roles (#185) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 5de7338: [M2.3f1b1] Web: resource settings; forms recover after a refused request (#184) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- d4552a4: [M2.4b] Web: audit log with filters, paging and export (#183) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 18c8d1a: [M3.5b] Remove replaced containers; release history with diff (#182) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 4e08f71: [M1.6b3] Show replicas and their observed state (#181) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- ff26002: chore: configure CodeRabbit as an optional reviewer (#180) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 5b58caf: [M2.6b] Live updates per environment (#179) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 2869cd8: [M3.6a] Domains: unique per organization, live DNS check (#178) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 70ab305: chore: move the repository to the shipkeepdev organization (#177) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 5703d3c: [M3.5a] One-click rollback (#176) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 4e67973: [M1.6b2] Record what agents observe for their replicas (#175) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- a57087f: [M1.6b1] Collect and transport managed-container state reports (#172) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 9f297a5: [M3.4d] Edit application YAML with conflict recovery (#174) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 5563ce0: [M10.0a] Repair integration acceptance fixtures (#173) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- d496b9d: [M2.7c] Web: servers, join tokens and confirmed removal (#170) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 57af855: [M3.7b] Web: applications, deployments and secrets (#169) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 0058814: [M2.3f1a] Web workspace navigation: organizations, projects, environments (#168) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- c5b893b: [M3.4c4c] Deployment worker: run queued deployments through agents (#167) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 80788c5: [M3.4c4b] Planner steps as agent actions, with agent compatibility vectors (#166) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- a8b903c: [M3.4c4a] Allocations, pipeline store and scheduler adapter (#165) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- c33289b: [M3.4c3b] Pure deployment pipeline planner (#164) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 156cac1: fix: keep node capacity facts (enrollment and CollectFacts) (#163) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- d86f479: [M3.4c3a] Route upstreams that name a local container (ADR 0017) (#162) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- d6da75d: [M3.4c2] Resolve image tags to digests behind SSRF guards (#161) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 0f8a5e8: [M3.4c1] Node liveness from agent heartbeats (#160) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 41db597: [M3.4b2] Releases and queued deployments (#159) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- ab0c68f: [M3.4b1] Image applications through the API (#158) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- e41c552: [M3.4a] Deployment state machine as a pure aggregate (#157) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 5cf58a4: [M3.7a] Write-only, versioned environment secrets (#156) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- eb41e15: [M1.6] Agent self-reconciliation and host facts (#155) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- de87694: [M1.5] Route management through the Caddy admin API (#154) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- dc87474: [M1.4c3] Container health checks and one-shot release tasks (#153) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 2f60c5d: [M1.4c2] Container start, stop and confirmed removal (#152) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- b801680: [M1.4c1] Confined container creation from validated specs (#151) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- b10f0d1: [M1.4b2] Agent confirmation verifier and confirmed volume removal (#150) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- dce84bf: [M1.4b1] Typed Docker client with network, image and volume handlers (#149) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 303e1f9: [M1.4a2] Durable agent action queue with at-least-once delivery (#148) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 57f05ce: [M1.4a1] Agent action dispatch with journaled, validated execution (#147) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- ffef02d: License the code under Apache-2.0 and keep the repository private (ADR 0016) (#146) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 9ddf43f: Contributor onboarding: CONTRIBUTING, code of conduct and README refresh (#145) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 5140648: [M2.4c] Audit coverage test for every mutating route (#128) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- b2f2d1a: [M4.3] Deterministic SPEC 6 scheduler with property tests (#127) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 7fd6e3f: [M2.7b] Confirmed node removal with certificate revocation (#126) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- b01330a: [M2.5a2] Confirmation issuance route and node target resolver (#125) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 990cf57: [M2.5a1] Confirmation token format, signing, storage and single-use consumption (#124) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 93f35d6: [M2.4a] Scoped audit log reads and JSON Lines export (#123) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- d9e1627: [M2.7a] Join token issuance and node listing over HTTP (#122) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- be68fcb: [M2.3e2] Project token administration by project administrators (#121) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 7556d13: [M2.3e1] Project-bound API tokens (#120) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- ad2700b: [M2.3g2] Forced row security on audit events (#119) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 0fca793: [M2.3g1b] Forced row security on fleet tables with scoped enrollment and gateway lookups (#118) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 6ca8fef: [M2.3g1a] Bind node certificates to their organization (ADR 0015) (#117) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- d0b7d99: [M2.3d4d] Generated route/role matrix and tenant acceptance checkpoint (#116) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- db146e2: [M2.3d4c] Role-binding mutation HTTP endpoints and privilege-change acceptance (#115) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 1a826d9: [M2.3d4b] Membership mutation HTTP endpoints with fresh proof and encrypted retries (#114) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 42706a8: [PLAN] Record maintainer decisions: license exception, M2.3 role defaults, CI (#113) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- cf5bb17: [M5.3-prep] Confirmation tokens for in-place restores (ADR 0013) (#112) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- c8dd8aa: [PLAN] Record remaining work, verification gap and pending decisions (#111) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 5017eb2: [M2.3-fix] Rule 6/8 audit follow-ups: join token secrets and audited key creation (#110) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 411a22f: [M2.3-fix] Review follow-ups for memberships, bindings, responses and enrollment errors (#109) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- fc57095: [M2.3d4a] Expose scoped administration directories (#107) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- d0baa42: [M2.3d3c2] Expose scoped project and environment mutations (#106) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 68283bd: [M2.3d3c1] Expose audited organization mutation endpoints (#105) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- c4809e8: [M2.3d3b] Reauthorize encrypted resource retry results (#104) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- c03f412: [M2.3d3a] Expose scoped organization resource catalog endpoints (#102) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 01e5fc4: [M2.3d2b] Authorize scoped tokens at resource command boundaries (#100) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 4f74e20: [M2.3d2a] Enforce live token authority inside command locks (#96) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 4be5a11: [M2.3d1] Require explicit route authority and tenant scope (#93) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 65c34f1: [M2.3c4c2] Query members and effective resource roles within authorized scope (#92) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- b716736: [M2.3c4c1] Manage scoped resource role bindings (#91) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 2490c84: [M2.3c4b] Manage memberships and preserve the final owner (#90) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- ab77453: [M2.3c4a] Serialize privilege changes and invalidate affected credentials (#89) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- eb1a08c: [M2.3c3c2] Filter resource catalogs before pagination (#88) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 4b66d6f: [M2.3c3c1] Authorize and audit project and environment settings (#87) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- e975164: [deps] Override vulnerable undici, vite and uuid in development tooling (#108) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 71b2647: [M1.2-fix] Gateway TLS, clock skew and renewal durability follow-ups (#103) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 3583b84: [M1.2c4b] Connect the agent daemon and verify restart and revocation (#36) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 7cb7fc2: [M1.2c4a] Reconnect agent streams and schedule credential renewal (#35) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- f6fd10f: [M1.2c3] Maintain authenticated agent streams and enforce revocation (#34) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 3718557: [M1.2c2] Enroll and renew agents with pinned TLS (#33) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 8a97e1f: [M1.2c1] Persist validated agent credentials atomically (#32) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 9413073: [M1.2b2] Serve agent enrollment and renewal over TLS gRPC (#31) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 028cae8: [M1.2b1] Authenticate and renew node certificates (#30) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 57e89e0: [M1.3c] Resume or compensate interrupted operations (#39) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- e065fd3: [M1.3b] Persist versioned local state and confirmation consumption (#38) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 3253636: [M1.3a] Persist operation intent and checkpoints in SQLite (#37) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 77ffc6c: [M2.2c1-fix] Stop account pre-hijacking through pending registrations (#101) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 16f959c: [M2.3c2a-fix] Make key material append-only and track fleet and audit RLS (#99) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 5b39f88: [M2.2e-fix] Fix expired-session sign-out and stop hiding one-time secrets on a timer (#98) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 341410c: [M2.2c2-fix] Stop unauthenticated account lockout and key IPv6 by /64 (#97) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- a5c5f41: [M2.2c4c1-fix] Bound concurrent replay transactions below the connection pool (#95) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 653f2ee: [M2.2e4b1-fix] Pin the Testcontainers PostgreSQL image to its digest (#94) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 34a8d57: [M2.3c3b2] Create and update organizations with atomic ownership and auditing (#86) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 9e977d3: [M2.3c3b1] Reauthenticate account mutations and bind session rotation to proof (#85) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- a97cb98: [M2.3c3a] Validate tenant settings and scope configuration permissions (#84) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- b3fdebc: [M2.3c2b2] Resolve tenant permissions from live resource state (#83) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- beeea05: [M2.3c2b1] Discover organizations through account-scoped row policies (#82) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- c212404: [M2.3c2a] Separate database runtime and migration privileges (#81) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 27f7b87: [M2.3c1] Scope tenant transactions and reject unsafe database roles (#80) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- ced2439: [M2.3b3] Bind fleet records to existing organizations (#79) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 839b523: [M2.3b2] Enforce tenant row isolation and concurrent owner protection (#78) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 7997819: [M2.3b1] Persist organizations and tenant-bound resources (#77) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 1be8664: [M2.3a] Define tenant permissions and last-owner policy (#76) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 97b4edc: [M2.2e4c] Finish identity accessibility and document the UI (#75) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- a4f83bc: [M2.2e4b2] Verify security workflows and preserve throttled retries (#74) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 9b9269e: [M2.2e4b1] Verify browser identity and fix generated CSP nonces (#73) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- d3000e3: [M2.2e4a] Serve browser assets with strict CSP and same-origin identity (#72) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 61d7f39: [M2.2e3d] Render token management and private credentials (#71) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 4940456: [M2.2e3c] Manage scoped token forms and metadata pages (#70) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- e11c8e5: [M2.2e3b] Render MFA enrollment and recovery controls (#69) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- c206345: [M2.2e3a] Manage MFA proofs and temporary private grants (#68) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- cf39631: [M2.2e2c] Render account routes and accessible navigation (#67) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 73ed40d: [M2.2e2b] Validate account forms and clear private inputs (#66) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 40689e1: [M2.2e2a] Guard identity form retries and lifecycle (#65) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 5b12898: [M2.2e1b] Add typed identity transport and session state (#64) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 0e607cb: [M2.2e1a] Fix immutable SDK arrays and pagination schema (#63) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 1f2fb90: [M2.2d4c2b] Expose secure API token management endpoints (#62) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 46aa450: [M2.2d4c2a] Enforce opt-in Bearer access and HTTP quotas (#61) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 1050efd: [M2.2d4c1] Authenticate scoped tokens with shared quotas (#60) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 8502a02: [M2.2d4b2] Add audited API token lifecycle commands (#59) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- a8c7f3d: [M2.2d4b1] Persist revocable API tokens (#58) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- e354d41: [M2.2d4a] Define closed API token scope policy (#57) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- e3d02d2: [M2.2d3] Expose protected MFA management endpoints (#56) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- c2ffb56: [M2.2d2b] Audit and reauthenticate MFA management (#55) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 5a4ece0: [M2.2d2a] Require atomic second-factor login proofs (#54) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 4539b9a: [M2.2d1] Persist encrypted MFA enrollment and proofs (#53) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- ec04c34: [M2.2c5] Redact sensitive HTTP error diagnostics (#52) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 5ddbc69: [M2.2c4c2] Replay authentication mutations safely (#51) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 48bc99b: [M2.2c4c1] Persist encrypted atomic authentication retries (#50) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 1c9a1fe: [M2.2c4b] Expose audited account and session endpoints (#49) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 50d466a: [M2.2c4a] Enforce session origin and CSRF boundaries (#48) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- f11ec13: [M2.2c3b] Deliver identity codes over verified SMTP TLS (#47) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 7018cf8: [M2.2c3a] Deliver identity mail through encrypted durable jobs (#46) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 30f8b5c: [M2.2c2] Enforce shared authentication attempt limits (#45) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 3e2db5c: [M2.2c1] Add audited account and session flows (#44) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 5b16548: [M2.2b3] Serialize identity and credential mutations (#43) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 6cc9b5b: [M2.2b2] Persist users and bounded identity credentials (#42) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 7282249: [M2.2b1] Make command and audit persistence atomic (#41) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 765c32b: [M2.2a] Add bounded authentication security primitives (#40) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 712c962: [M1.2a] Fleet: join tokens, installation CA and node enrollment (#29) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- bbf0f88: [M2.1b] Envelope encryption, domain events and audit log (#28) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 291fa0d: [M2.1a] API skeleton (#27) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 890e676: [M0.5] Configurable dev stack ports (#26) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 8bdcdff: [M1.1] Agent skeleton and config (#19) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 8d79117: [M0.6] Custom Semgrep rules (#12) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 8170fb9: [M0.5] Local dev environment (#11) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 03cdd53: [M0.4] shipkeep.yml schema (#10) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 90e982a: [M0.3] Proto and codegen pipeline (#9) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 3c7fd7b: [M0.2] CI and security workflows (#8) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
- 0875a1a: [M0.1] Repository bootstrap (#7) (samuel mbabhazi 111171386+samuelmbabhazi@users.noreply.github.com)
Control plane image
SHIPKEEP_IMAGE=ghcr.io/shipkeepdev/shipkeep:0.1.0-alpha.1@sha256:35602281954d02e77818063a785901af373c69c3ab1a7d45120cd147a9962c56