Skip to content

v0.2.0

Choose a tag to compare

@vishu42 vishu42 released this 04 Oct 17:18
· 223 commits to main since this release
078b277

What's Changed

  • feat: dispatch template runs through transactional outbox by @vishu42 in #1
  • feat: rename project by @vishu42 in #2
  • AUTH-004: Define and provision the OpenFGA model by @vishu42 in #29
  • AUTH-005: add authentication and authorization runtime configuration by @vishu42 in #30
  • AUTH-006: implement OIDC access-token verification by @vishu42 in #31
  • AUTH-007: add API authentication middleware by @vishu42 in #32
  • AUTH-008: derive actor identities from authenticated subject by @vishu42 in #33
  • AUTH-009: enforce configured single-tenant boundary by @vishu42 in #62
  • fix: temporal retry policies by @vishu42 in #34
  • feat(authz): add OpenFGA authorization port and adapter by @vishu42 in #63
  • feat(authz): authorize stack creation ownership by @vishu42 in #64
  • feat(authz): make relationship writes durable by @vishu42 in #81
  • UI-001: Add routing and app shell by @vishu42 in #82
  • UI-002: Define identity and capability contract types by @vishu42 in #83
  • feat(authz): enforce endpoint permission matrix (AUTH-013) by @vishu42 in #86
  • UI-003: Add TanStack Query data layer by @vishu42 in #84
  • UI-004: Add AuthProvider abstraction with mock implementation by @vishu42 in #87
  • feat(security-audit): AUTH-014 security audit trail by @vishu42 in #89
  • UI-005: Add capability-gating primitives by @vishu42 in #90
  • UI-006: Add shared error and session boundaries by @vishu42 in #92
  • AUTH-015: Prevent self-approval of template runs by @vishu42 in #91
  • UI-007: Restructure into feature-based folders by @vishu42 in #93
  • feat(auth): AUTH-016 Keycloak user directory reader by @vishu42 in #95
  • UI-008: Build stacks list screen by @vishu42 in #96
  • UI-017: Baseline styling for AppShell chrome by @vishu42 in #98
  • feat(web): build template registry screen at /templates (UI-009) by @vishu42 in #99
  • feat(web): build stack detail shell with tab navigation by @vishu42 in #100
  • AUTH-018: Integrate Keycloak sign-in and session handling by @vishu42 in #104
  • chore: remove committed vitest cache file, expand .gitignore by @vishu42 in #105
  • UI-011: Build stack template and variables screen by @vishu42 in #103
  • AUTH-019: Replace placeholder identity and tenant controls by @vishu42 in #107
  • UI-012: Build runs list and run detail screens by @vishu42 in #106
  • feat(web): AUTH-020 — complete permission-aware UI tests and cleanup by @vishu42 in #108
  • UI-014: Gate debug IDs panel behind dev-only flag by @vishu42 in #109
  • AUTH-021: Add stack Access UI + grant management API by @vishu42 in #110
  • UI-015: add 401/403/404 error state screen-level tests by @vishu42 in #111
  • UI-016: close out real-auth integration loose ends by @vishu42 in #112
  • fix: append /auth/callback to KEYCLOAK_WEB_REDIRECT_URIS in .env.example by @vishu42 in #113
  • fix(web): repair OIDC login redirect flow by @vishu42 in #114
  • feat: add Create Stack UI by @vishu42 in #115
  • feat: resolve effectiveCapabilities on stack API responses by @vishu42 in #116
  • fix: add client-level scope-mappings for directory-reader client by @vishu42 in #117
  • fix: align stack role assignment client with server API by @vishu42 in #118
  • hotfix: allow self plan approval by @vishu42 in #122
  • feat: derive stack template display name from repo_name and root_path by @vishu42 in #123
  • run history cross user visibility by @vishu42 in #124
  • fix: use direct user-ID lookup for grant display names (closes #119) by @vishu42 in #125
  • feat: implement terraform destroy flow and remove destroyed stack templates from UI by @vishu42 in #127
  • feat: move destroy button to runs screen and fix approval for destroy operations by @vishu42 in #154
  • feat: add stack environment credentials tab by @vishu42 in #159
  • Recover failed and closed template runs by @vishu42 in #160
  • issue: eliminating redundant status records by @vishu42 in #161
  • feat: add Temporal worker session affinity by @vishu42 in #162
  • refactor: unify runner subprocess executor and add typed command errors by @vishu42 in #165
  • fix: disable automatic activity retries in template run workflow by @vishu42 in #166
  • Give runTerraform ownership of terraform-command run statuses by @vishu42 in #167
  • refactor: require caller-supplied source template ID in postgres store by @vishu42 in #169
  • feat: generic work queue by @vishu42 in #171
  • feat(web): Minimalist Modern design system by @vishu42 in #174
  • feat: fix dual writes queue outbox by @vishu42 in #175
  • feat: ui/ux improvement by @vishu42 in #177
  • fix: let the api migration test terminate on success by @vishu42 in #183
  • Split the stack template screen into configure, install, and change-revision flows by @vishu42 in #178
  • feat: track planned and applied state on stack templates; reject applies whose plan no longer matches desired by @vishu42 in #180
  • fix: run the resolved commit instead of following the installed ref by @vishu42 in #182
  • refactor: stop storing a ref on the stack template by @vishu42 in #184
  • refactor: give the stack template struct one meaning per field by @vishu42 in #185
  • fix: expect 200 from GET /v1/me, not 204 by @vishu42 in #188
  • Show runs inline on the stack template screen by @vishu42 in #189
  • Drop the section label pill by @vishu42 in #190
  • refactor: swap the display face from Calistoga to Archivo by @vishu42 in #192
  • Retune web proportions to match Vercel Geist by @vishu42 in #193
  • fix(web): use plain hyphens in run history entries by @vishu42 in #194
  • Grant the seeded administrator the stack-creator role by @vishu42 in #202
  • Run the stack in two commands: infrastructure, then application by @vishu42 in #200
  • Make the README about the product, not the plumbing by @vishu42 in #203
  • Trim the README: drop upgrade notes and vendor names by @vishu42 in #205
  • fix(web): install devDependencies for production builds by @vishu42 in #206
  • docs: show the product in the README by @vishu42 in #207
  • docs: IAM/identity surface analysis and settled decisions by @vishu42 in #217
  • fix: accept tokens from any conformant IdP, not just Keycloak by @vishu42 in #218
  • docs: park #216 behind #145, and say why by @vishu42 in #219
  • docs: design the (Subject, Relation, Object) authz port by @vishu42 in #221
  • Generalize the authz port to (Subject, Relation, Object) by @vishu42 in #222
  • feat(authz): author the OpenFGA model in DSL and load it in process by @vishu42 in #223
  • feat(authz): make OpenFGA the sole authorization source by @vishu42 in #224
  • refactor(web): delete the legacy console still mounted at "/" by @vishu42 in #226
  • Move the OIDC flow server-side: the API becomes the confidential client by @vishu42 in #225
  • feat(authn): project verified identities to a local users table by @vishu42 in #227
  • Local accounts, a seeded root administrator, and a sign-in screen by @vishu42 in #228
  • refactor: collapse seven cases of duplicated logic by @vishu42 in #229
  • fix(deploy): copy internal/strval into the keycloak-provisioner build by @vishu42 in #230
  • refactor: rename internal/traits to internal/domain and split it by concern by @vishu42 in #232
  • feat(web): show applied state per stack template by @vishu42 in #233
  • feat(web): pick a template to install, not a commit by @vishu42 in #236
  • feat(web): list templates once, revisions behind a route by @vishu42 in #235
  • feat: refuse a second run while one is in flight by @vishu42 in #238
  • feat: read private GitHub repositories with a GitHub App by @vishu42 in #242
  • feat: one authorization package by @vishu42 in #243
  • Split the control plane into the api and leave the executor executing by @vishu42 in #253
  • fix: add temporal heartbeats by @vishu42 in #255
  • feat: share an OpenTofu provider cache across executor runs by @vishu42 in #256
  • feat: add metrics and auth compose profiles by @vishu42 in #261
  • feat: add sync button to template detail screen by @vishu42 in #263
  • feat: breadcrumb page titles, Geist type, no bold by @vishu42 in #264
  • feat: number runs per stack template by @vishu42 in #265
  • feat: give each stack template its own tabbed page by @vishu42 in #266
  • feat: apply the saved plan someone approved by @vishu42 in #268
  • refactor: run status is lifecycle, progress is a step by @vishu42 in #269
  • feat: each workflow and step of a template run gets a row of its own by @vishu42 in #271
  • refactor: rename tflive to openplan by @vishu42 in #272
  • feat: adopt dex as the identity provider by @vishu42 in #279
  • chore: upgrade web to react 19 by @vishu42 in #273
  • feat(web): tailwind and shadcn foundation beside a legacy layer by @vishu42 in #274
  • feat(web): app shell and shared components on shadcn by @vishu42 in #276
  • feat(web): standalone screens on shadcn by @vishu42 in #277
  • feat(web): stacks screens on shadcn by @vishu42 in #278
  • feat(web): stack access screen on shadcn by @vishu42 in #280
  • docs: drop stale comments from .env.example by @vishu42 in #281
  • feat(web): stack template screens on shadcn by @vishu42 in #282
  • feat(web): migrate template registry and runs to shadcn by @vishu42 in #283
  • refactor(web): delete the legacy styles and finish the shadcn migration by @vishu42 in #284
  • docs: describe dex as the only identity provider by @vishu42 in #285
  • refactor: rename authn to authentication and fold /v1/me into api by @vishu42 in #286
  • fix: show who started a run by name, not by subject by @vishu42 in #287
  • refactor: remove duplication from the authentication path by @vishu42 in #291
  • feat: redesign /stacks and add the attention page by @vishu42 in #292
  • feat(web): make the stack's page a split view of its templates by @vishu42 in #293
  • feat(web): rebuild the stack page's panel views on openplan UI by @vishu42 in #294
  • docs: rewrite the README, add CI, and refresh the screenshots by @vishu42 in #300
  • ci: publish the api, executor and web images to GHCR by @vishu42 in #302
  • ci: build each architecture natively and merge the manifests by @vishu42 in #303

New Contributors

Full Changelog: https://github.com/openplanhq/openplan/commits/v0.2.0