Skip to content

Rename operation database to runtime-persistent and runtime database to runtime-transient - #4077

Merged
indeewari merged 1 commit into
thunder-id:mainfrom
indeewari:rename-database
Jul 17, 2026
Merged

Rename operation database to runtime-persistent and runtime database to runtime-transient#4077
indeewari merged 1 commit into
thunder-id:mainfrom
indeewari:rename-database

Conversation

@indeewari

@indeewari indeewari commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Purpose

Rename the two runtime-facing logical databases so their names reflect the lifetime of the data they hold:

  • operationruntime-persistent: long-lived operational state that must survive restarts (revoked tokens, SSO sessions, consent records).
  • runtimeruntime-transient: short-lived state (authorization codes and requests, PAR, JTI records, WebAuthn/VCI state, flow contexts).

The previous operation name was ambiguous; the new pair makes the transient-vs-durable split explicit and consistent across config, code, deployment artifacts, and docs.

Per-layer forms (each layer follows its own convention):

Layer operation runtime
Config key (yaml/json) runtime_persistent runtime_transient
Go struct field / methods RuntimePersistent / GetRuntimePersistentDBClient RuntimeTransient / GetRuntimeTransientDBClient
dbscripts dir / sqlite file runtime-persistent runtime-transient
Postgres db name runtime_persistent runtime_transient
Observability event RUNTIME_PERSISTENT_DB_UNAVAILABLE (none)

⚠️ Breaking Changes

🔧 Summary of Breaking Changes

The database configuration keys are renamed:

  • database.runtimedatabase.runtime_transient
  • database.operationdatabase.runtime_persistent

Physical artifact names also change (SQLite files runtime-transient.db / runtime-persistent.db, Postgres db names runtime_transient / runtime_persistent, and backend/dbscripts/ directory names).

💥 Impact

Any deployment that sets these keys in deployment.yaml, Helm values, or environment-based config must update them, or the affected database falls back to defaults / fails to initialize. Existing SQLite data files named runtimedb.db / operationdb.db and Postgres databases named runtimedb / operationdb are no longer referenced under the old names.

🔄 Migration Guide

Update configuration keys:

database:
  runtime_transient:      # was: runtime
    type: "postgres"
    postgres:
      name: "runtime_transient"   # was: runtimedb
      # ...
  runtime_persistent:     # was: operation
    type: "postgres"
    postgres:
      name: "runtime_persistent"  # was: operationdb
      # ...

For SQLite, point paths at database/runtime-transient.db and database/runtime-persistent.db (or rename the existing files). For Postgres, rename or recreate the databases: runtimedbruntime_transient, operationdbruntime_persistent.


Approach

Applied the rename in three passes, validated after each:

  1. Go symbols — config struct + yaml/json tags, DBProviderInterface methods and all callers, private provider fields, the observability event constant/value, and regenerated mocks. Substring-collision ordering handled (RuntimePersistent contains Runtime).
  2. Physical namesgit mv of the two dbscripts/ directories, SQLite/Postgres names and cleanup procedures, build/packaging scripts, docker-compose, integration test tooling, and the integration-test CI action (kept the generated test config and the CI CREATE DATABASE names in sync).
  3. Config keys — renamed only the database.* keys across deployment.yamls, the Helm chart (values, _helpers.tpl, templates), and the OpenChoreo charts. The unrelated OpenChoreo parameters.runtime.* namespace was deliberately left untouched.

Validation: go build, go vet, and the full backend unit suite pass; helm lint + helm template render cleanly; a repo-wide scan confirms no stale runtimedb/operationdb/old-symbol references remain.

Related Issues

Related PRs

  • N/A

Checklist

  • Followed the contribution guidelines.
  • Manual test round performed and verified.
  • Documentation provided. (configuration, production-guidelines, kubernetes, openchoreo, get-thunderid, debugging + Helm/OpenChoreo READMEs)
    • Ran Vale and fixed all errors and warnings
  • Tests provided. (existing tests updated to the new symbols)
    • Unit Tests
    • Integration Tests
  • Breaking changes. (Fill if applicable)
    • Breaking changes section filled.
    • breaking change label added.

Security checks

  • Followed secure coding standards in WSO2 Secure Coding Guidelines
  • Confirmed that this PR doesn't commit any keys, passwords, tokens, usernames, or other secrets.

Summary by CodeRabbit

  • New Features
    • Split runtime storage into runtime-transient (short-lived auth/state) and runtime-persistent (durable session/consent/revocation) databases, with matching PostgreSQL/SQLite schemas and expiry/cleanup support.
    • Runtime initialization and storage usage updated so each feature uses the appropriate database.
  • Documentation
    • Updated configuration keys, Helm examples, local/dev setups, and deployment guides to the new runtime-transient/runtime-persistent naming and paths.
  • Observability
    • Updated runtime-persistent database unavailability alert/event naming and routing.

@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Important

Review skipped

Too many files!

This PR contains 117 files, which is 17 over the limit of 100.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 0b12c60d-61a9-48e8-9058-c526e45ede78

📥 Commits

Reviewing files that changed from the base of the PR and between 40650fd and 4875df7.

⛔ Files ignored due to path filters (2)
  • .agent/skills/db/SKILL.md is excluded by !.agent/skills/**
  • backend/tests/mocks/database/providermock/DBProviderInterface_mock.go is excluded by !**/*_mock.go
📒 Files selected for processing (117)
  • .github/actions/run-integration-tests/action.yml
  • ARCHITECTURE.md
  • api/healthcheck.yaml
  • api/oauth2.yaml
  • backend/cmd/server/config/default.json
  • backend/cmd/server/deployment.yaml
  • backend/cmd/server/servicemanager.go
  • backend/dbscripts/runtime-persistent/postgres-cleanup.sql
  • backend/dbscripts/runtime-persistent/postgres.sql
  • backend/dbscripts/runtime-persistent/sqlite.sql
  • backend/dbscripts/runtime-transient/postgres-cleanup.sql
  • backend/dbscripts/runtime-transient/postgres.sql
  • backend/dbscripts/runtime-transient/sqlite.sql
  • backend/internal/application/init_test.go
  • backend/internal/authn/passkey/init.go
  • backend/internal/authn/passkey/store.go
  • backend/internal/authn/passkey/store_test.go
  • backend/internal/consent/store.go
  • backend/internal/consent/store_test.go
  • backend/internal/entityprovider/init_test.go
  • backend/internal/flow/mgt/init_test.go
  • backend/internal/flow/session/init.go
  • backend/internal/flow/session/interface.go
  • backend/internal/flow/session/participant_store_test.go
  • backend/internal/flow/session/resolver_test.go
  • backend/internal/flow/session/session_context_store_test.go
  • backend/internal/flow/session/store.go
  • backend/internal/flow/session/store_test.go
  • backend/internal/idp/init_test.go
  • backend/internal/idp/store_test.go
  • backend/internal/oauth/config/config.go
  • backend/internal/oauth/config/config_test.go
  • backend/internal/oauth/oauth2/authz/auth_code_store.go
  • backend/internal/oauth/oauth2/authz/auth_code_store_test.go
  • backend/internal/oauth/oauth2/authz/auth_req_store.go
  • backend/internal/oauth/oauth2/authz/auth_req_store_test.go
  • backend/internal/oauth/oauth2/authz/handler_test.go
  • backend/internal/oauth/oauth2/authz/init.go
  • backend/internal/oauth/oauth2/authz/init_test.go
  • backend/internal/oauth/oauth2/authz/service_test.go
  • backend/internal/oauth/oauth2/ciba/store.go
  • backend/internal/oauth/oauth2/ciba/store_test.go
  • backend/internal/oauth/oauth2/dcr/init.go
  • backend/internal/oauth/oauth2/dcr/init_test.go
  • backend/internal/oauth/oauth2/granthandlers/refresh_token_test.go
  • backend/internal/oauth/oauth2/jti/init.go
  • backend/internal/oauth/oauth2/jti/store.go
  • backend/internal/oauth/oauth2/jti/store_test.go
  • backend/internal/oauth/oauth2/logout/store.go
  • backend/internal/oauth/oauth2/par/init.go
  • backend/internal/oauth/oauth2/par/store.go
  • backend/internal/oauth/oauth2/par/store_test.go
  • backend/internal/oauth/oauth2/revocation/circuit_breaker.go
  • backend/internal/oauth/oauth2/revocation/enforcement_service.go
  • backend/internal/oauth/oauth2/revocation/enforcement_service_test.go
  • backend/internal/oauth/oauth2/revocation/error_constants.go
  • backend/internal/oauth/oauth2/revocation/init.go
  • backend/internal/oauth/oauth2/revocation/init_test.go
  • backend/internal/oauth/oauth2/revocation/service_test.go
  • backend/internal/oauth/oauth2/revocation/store.go
  • backend/internal/oauth/oauth2/revocation/store_test.go
  • backend/internal/resource/init_test.go
  • backend/internal/resource/service_test.go
  • backend/internal/runtimestore/dbstore/init.go
  • backend/internal/runtimestore/dbstore/service.go
  • backend/internal/runtimestore/dbstore/service_test.go
  • backend/internal/runtimestore/init.go
  • backend/internal/system/config/config.go
  • backend/internal/system/config/config_test.go
  • backend/internal/system/database/provider/dbprovider.go
  • backend/internal/system/database/provider/dbprovider_test.go
  • backend/internal/system/database/provider/redisprovider.go
  • backend/internal/system/healthcheck/handler/healthcheckhandler_test.go
  • backend/internal/system/healthcheck/service/db_constants.go
  • backend/internal/system/healthcheck/service/healthcheckservice.go
  • backend/internal/system/healthcheck/service/healthcheckservice_test.go
  • backend/internal/system/observability/event/category.go
  • backend/internal/system/observability/event/constants.go
  • backend/internal/system/revocationcache/source.go
  • backend/internal/system/revocationcache/source_db.go
  • backend/internal/system/revocationcache/source_db_test.go
  • backend/pkg/thunderidengine/config/config.go
  • backend/pkg/thunderidengine/engine.go
  • backend/scripts/cleanup_runtime_transient_db.sh
  • backend/tests/resources/deployment.yaml
  • backend/tests/testhelpers/oauthconfig.go
  • build.ps1
  • build.sh
  • docs/content/community/contributing/contributing-code/debugging.mdx
  • docs/content/guides/deployment-patterns/kubernetes.mdx
  • docs/content/guides/deployment-patterns/openchoreo.mdx
  • docs/content/guides/deployment-patterns/production-guidelines.mdx
  • docs/content/guides/getting-started/configuration.mdx
  • docs/content/guides/getting-started/get-thunderid.mdx
  • install/helm/README.md
  • install/helm/conf/deployment.yaml
  • install/helm/templates/_helpers.tpl
  • install/helm/templates/pvc.yaml
  • install/helm/templates/secret.yaml
  • install/helm/templates/setup-job.yaml
  • install/helm/templates/thunderid-deployment.yaml
  • install/helm/values.yaml
  • install/local-development/docker-compose.yml
  • install/local-development/postgres-init/init.sql
  • install/openchoreo/helm/README.md
  • install/openchoreo/helm/charts/thunderid-component/templates/thunderid-component.yaml
  • install/openchoreo/helm/charts/thunderid-component/templates/thunderid-release.yaml
  • install/openchoreo/helm/charts/thunderid-component/values.yaml
  • install/openchoreo/helm/charts/thunderid-oc-componenttype/templates/thunderid-componenttype.yaml
  • install/openchoreo/helm/values.yaml
  • install/openchoreo/thunderid-oc-resourcetype/README.md
  • install/openchoreo/thunderid-oc-resourcetype/templates/thunderid-resourcetype.yaml
  • tests/integration/oauth/revocation/revocation_test.go
  • tests/integration/resources/deployment.yaml
  • tests/integration/resources/scripts/setup-test-config.ps1
  • tests/integration/resources/scripts/setup-test-config.sh
  • tests/integration/testutils/test_utils.go

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Review on demand using usage pricing
📝 Walkthrough

Walkthrough

The PR replaces the runtime and operation database roles with runtime_transient and runtime_persistent, adds transient runtime schemas, routes service access through new provider methods, and synchronizes deployment, Helm, documentation, build, and integration configurations.

Changes

Runtime database split

Layer / File(s) Summary
Database contracts and schemas
backend/internal/system/config/*, backend/internal/system/database/provider/*, backend/dbscripts/runtime-*/**
Configuration fields, provider methods, database names, cleanup procedures, and transient/persistent schemas use the split runtime layout.
Transient storage consumers
backend/internal/oauth/**, backend/internal/authn/passkey/*, backend/internal/runtimestore/**
Transient runtime clients and transactioners are used for OAuth state, passkey sessions, and runtime-store operations.
Persistent storage consumers
backend/internal/consent/*, backend/internal/flow/session/*, backend/internal/oauth/oauth2/revocation/*, backend/internal/system/revocationcache/*
Persistent runtime clients and transactioners replace operation database access for consent, sessions, revocation, and cache snapshots.
Deployment and rollout
install/helm/**, install/openchoreo/**, docs/**, build.*, tests/integration/**, install/local-development/**
Deployment templates, documentation, initialization scripts, Helm values, and integration fixtures use the split database configuration.

Estimated code review effort: 4 (Complex) | ~60 minutes

Possibly related PRs

Suggested reviewers: rajithacharith, thamindudilshan, thiva-k, darshanasbg, senthalan

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: renaming runtime and operation databases to transient and persistent variants.
Description check ✅ Passed The PR description matches the template well, covering purpose, breaking changes, approach, related issue, checklist, and security items.
Linked Issues check ✅ Passed The changes satisfy #4076 by renaming the runtime and operation databases across config, code, scripts, deploy artifacts, and docs.
Out of Scope Changes check ✅ Passed The diff appears scope-aligned; the docs, tests, and tooling updates all support the database rename objective.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@indeewari indeewari added the breaking change The feature/ improvement will alter the existing behaviour label Jul 16, 2026
@codecov

codecov Bot commented Jul 16, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.96429% with 9 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
backend/pkg/thunderidengine/engine.go 0.00% 7 Missing ⚠️
backend/internal/flow/session/init.go 50.00% 1 Missing ⚠️
...nd/internal/system/database/provider/dbprovider.go 96.00% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@rajithacharith

Copy link
Copy Markdown
Contributor

@coderabbitai help

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

CodeRabbit commands

These commands are invoked using PR/Issue comments.

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai rate limit to show your current review rate limit status.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai evaluate custom pre-merge check --instructions <custom-checks-instructions> --name <custom-checks-title> [--mode <error|warning>] to validate the custom pre-merge checks instructions. Defaults to error when --mode is omitted.
  • @coderabbitai ignore pre-merge checks to override pre-merge checks and get an approval on PR.
  • @coderabbitai run pre-merge checks to run pre-merge checks on the pull request.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai emit path instructions to emit generated path-specific review instructions for this repository.
  • @coderabbitai resolve merge conflict to automatically resolve merge conflicts.
  • @coderabbitai autofix to automatically fix issues identified in unresolved review comments.
  • @coderabbitai resolve to resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai generate configuration to create a PR that adds the current resolved configuration as .coderabbit.yaml (or show it if already present).
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore or @coderabbit ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Status, support, documentation and community

  • Visit our status page to check the current availability of CodeRabbit.
  • Create a ticket on our support page for assistance with any issues or questions.
  • Visit our documentation site for detailed information on how to use CodeRabbit.
  • Join our Discord community to connect with other users and get help from the community.
  • Follow us on X/Twitter for updates and announcements.

@rajithacharith

Copy link
Copy Markdown
Contributor

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Full review finished.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🧹 Nitpick comments (9)
backend/internal/oauth/oauth2/revocation/enforcement_service.go (2)

92-106: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Rename function to match the new database name.

To keep the naming consistent with the new terminology introduced in this PR, consider renaming this helper function from publishOperationDBUnavailableEvent to publishRuntimePersistentDBUnavailableEvent.

♻️ Proposed refactor
-func (c *enforcementService) publishOperationDBUnavailableEvent(ctx context.Context, cause error) {
+func (c *enforcementService) publishRuntimePersistentDBUnavailableEvent(ctx context.Context, cause error) {
 	if c.observabilitySvc == nil || !c.observabilitySvc.IsEnabled() {
 		return
 	}
 
 	evt := event.NewEvent(
 		syscontext.GetTraceID(ctx),
 		string(event.EventTypeRuntimePersistentDBUnavailable),
 		event.ComponentAuthHandler,
 	).
 		WithStatus(providers.StatusFailure).
 		WithData(event.DataKey.Error, cause.Error())
 
 	c.observabilitySvc.PublishEvent(ctx, evt)
 }
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@backend/internal/oauth/oauth2/revocation/enforcement_service.go` around lines
92 - 106, Rename publishOperationDBUnavailableEvent to
publishRuntimePersistentDBUnavailableEvent and update every call site to use the
new name, leaving its event construction and behavior unchanged.

64-88: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Update the log message and consider renaming the helper function to reflect the database rename.

The log message on line 70 still refers to the "Operation DB," and the helper function invoked on line 79 is named publishOperationDBUnavailableEvent. To fully align with the PR's objective of renaming the database, consider updating these to reference the Runtime Persistent DB instead.

♻️ Proposed refactor
 	if !c.breaker.allow() {
-		c.logger.Debug(ctx, "Operation DB circuit is open; failing closed for revocation check")
+		c.logger.Debug(ctx, "Runtime persistent DB circuit is open; failing closed for revocation check")
 		return ErrEnforcementUnavailable
 	}
 
 	revoked, err := c.store.IsTokenRevoked(ctx, jti)
 	if err != nil {
 		c.logger.Error(ctx, "Failed to consult token revocation deny list; failing closed",
 			log.Error(err))
 		if c.breaker.recordFailure() {
-			c.publishOperationDBUnavailableEvent(ctx, err)
+			c.publishRuntimePersistentDBUnavailableEvent(ctx, err)
 		}
 		return ErrEnforcementUnavailable
 	}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@backend/internal/oauth/oauth2/revocation/enforcement_service.go` around lines
64 - 88, Update EnsureNotRevoked to replace “Operation DB” with “Runtime
Persistent DB” in the circuit-open debug log, and rename
publishOperationDBUnavailableEvent plus all its references to use the Runtime
Persistent DB terminology consistently.
install/local-development/docker-compose.yml (1)

16-19: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider aligning the container file names with the new database names.

The host paths were correctly updated to use runtime-transient and runtime-persistent, but the destination file names in the container remain runtime-postgres.sql and operation-postgres.sql. For consistency, consider updating the destination names to match the new taxonomy as well.

♻️ Proposed refactor
-      - ../../backend/dbscripts/runtime-transient/postgres.sql:/docker-entrypoint-initdb.d/runtime-postgres.sql
-      - ../../backend/dbscripts/configdb/postgres.sql:/docker-entrypoint-initdb.d/config-postgres.sql
-      - ../../backend/dbscripts/userdb/postgres.sql:/docker-entrypoint-initdb.d/user-postgres.sql
-      - ../../backend/dbscripts/runtime-persistent/postgres.sql:/docker-entrypoint-initdb.d/operation-postgres.sql
+      - ../../backend/dbscripts/runtime-transient/postgres.sql:/docker-entrypoint-initdb.d/runtime-transient-postgres.sql
+      - ../../backend/dbscripts/configdb/postgres.sql:/docker-entrypoint-initdb.d/config-postgres.sql
+      - ../../backend/dbscripts/userdb/postgres.sql:/docker-entrypoint-initdb.d/user-postgres.sql
+      - ../../backend/dbscripts/runtime-persistent/postgres.sql:/docker-entrypoint-initdb.d/runtime-persistent-postgres.sql

Note: If you apply this change, remember to update the corresponding \i commands in install/local-development/postgres-init/init.sql.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@install/local-development/docker-compose.yml` around lines 16 - 19, Align the
destination filenames in the Docker Compose volume mappings with the new
database taxonomy: rename the runtime-transient target from runtime-postgres.sql
to runtime-transient-postgres.sql and the runtime-persistent target from
operation-postgres.sql to runtime-persistent-postgres.sql. Update the
corresponding \i commands in init.sql to reference these renamed container
files.
install/local-development/postgres-init/init.sql (1)

8-9: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider updating the script file references to match the new names.

If you choose to apply the optional refactor in docker-compose.yml to rename the destination files, you should also update the \i commands here to reference the new file names.

♻️ Proposed refactor
 \connect runtime_transient
-\i /docker-entrypoint-initdb.d/runtime-postgres.sql
+\i /docker-entrypoint-initdb.d/runtime-transient-postgres.sql
 \connect runtime_persistent
-\i /docker-entrypoint-initdb.d/operation-postgres.sql
+\i /docker-entrypoint-initdb.d/runtime-persistent-postgres.sql

Also applies to: 20-21

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@install/local-development/postgres-init/init.sql` around lines 8 - 9, Update
the \i script references in the init.sql connection blocks to match the renamed
destination files configured by the docker-compose.yml refactor, including both
occurrences, while preserving the existing database connections and
initialization order.
backend/internal/system/database/provider/dbprovider.go (1)

131-136: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Clean up stale operation and runtime terminology. Several variables, docstrings, and log messages in this file still use the old operation and runtime identifiers, which can cause confusion now that the domains are explicitly runtime-persistent and runtime-transient.

  • backend/internal/system/database/provider/dbprovider.go#L131-L136: update the docstring to "runtime persistent" and rename operationDBConfig.
  • backend/internal/system/database/provider/dbprovider.go#L116-L121: update the docstring to "runtime transient".
  • backend/internal/system/database/provider/dbprovider.go#L161-L164: update the docstring to "runtime persistent".
  • backend/internal/system/database/provider/dbprovider.go#L206-L208: rename operationDBConfig and update the log message to mention the persistent client.
  • backend/internal/system/database/provider/dbprovider.go#L348-L350: rename operationErr / runtimeErr, and pass dbNameRuntimeTransient and dbNameRuntimePersistent into closeClient instead of the hardcoded "runtime" and "operation" strings.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@backend/internal/system/database/provider/dbprovider.go` around lines 131 -
136, Clean up stale terminology in dbprovider.go: update
GetRuntimeTransientDBClient and GetRuntimePersistentDBClient docstrings to
“runtime transient” and “runtime persistent,” and update the persistent-related
docstring at lines 161-164. Rename operationDBConfig in
GetRuntimePersistentDBClient and the corresponding initialization flow at lines
206-208, updating its log message to mention the persistent client. In the
close-client flow at lines 348-350, rename operationErr and runtimeErr and pass
dbNameRuntimeTransient and dbNameRuntimePersistent to closeClient instead of
hardcoded “runtime” and “operation” strings.
backend/internal/system/database/provider/dbprovider_test.go (1)

51-62: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider updating the dummy database names to match the rename.

The dummy configuration still assigns the old database names (runtime and operation) to the PostgreSQL datasources. While this doesn't break the tests, updating them to runtime_transient and runtime_persistent maintains consistency with the new schema naming.

♻️ Proposed refactor
 		Database: config.DatabaseConfig{
 			Config: config.DataSource{
 				Type: "postgres", Postgres: config.PostgresDataSource{Name: "identity"},
 			},
 			RuntimeTransient: config.DataSource{
-				Type: "postgres", Postgres: config.PostgresDataSource{Name: "runtime"},
+				Type: "postgres", Postgres: config.PostgresDataSource{Name: "runtime_transient"},
 			},
 			User: config.DataSource{
 				Type: "postgres", Postgres: config.PostgresDataSource{Name: "user"},
 			},
 			RuntimePersistent: config.DataSource{
-				Type: "postgres", Postgres: config.PostgresDataSource{Name: "operation"},
+				Type: "postgres", Postgres: config.PostgresDataSource{Name: "runtime_persistent"},
 			},
 		},
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@backend/internal/system/database/provider/dbprovider_test.go` around lines 51
- 62, Update the dummy PostgreSQL datasource names in the test configuration:
change RuntimeTransient from “runtime” to “runtime_transient” and
RuntimePersistent from “operation” to “runtime_persistent”, while leaving the
other datasource entries unchanged.
docs/content/guides/getting-started/configuration.mdx (1)

285-288: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Format the configuration key with inline code spans.

As per path instructions, config keys and values must be formatted using inline backticks.

♻️ Proposed fix
 ### Runtime-persistent Database
 
-Stores SSO sessions, revoked tokens, and consent records. This database is required. <ProductName /> fails to start when database.runtime_persistent is not configured.
+Stores SSO sessions, revoked tokens, and consent records. This database is required. <ProductName /> fails to start when `database.runtime_persistent` is not configured.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/content/guides/getting-started/configuration.mdx` around lines 285 -
288, Update the “Runtime-persistent Database” documentation text to wrap the
configuration key database.runtime_persistent in inline backticks, preserving
the surrounding wording and markup.

Source: Path instructions

docs/content/guides/deployment-patterns/kubernetes.mdx (1)

146-169: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Update the password placeholders to match the new database names.

The password placeholders in the YAML examples still use the old terminology (<runtime-db-password> and <operation-db-password>). Consider renaming them to <runtime-transient-db-password> and <runtime-persistent-db-password> for consistency across both occurrences.

  • docs/content/guides/deployment-patterns/kubernetes.mdx#L146-L169: Update <runtime-db-password> to <runtime-transient-db-password> and <operation-db-password> to <runtime-persistent-db-password>.
  • docs/content/guides/deployment-patterns/kubernetes.mdx#L240-L263: Update <runtime-db-password> to <runtime-transient-db-password> and <operation-db-password> to <runtime-persistent-db-password>.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/content/guides/deployment-patterns/kubernetes.mdx` around lines 146 -
169, Update the password placeholders in the Kubernetes YAML examples: in
docs/content/guides/deployment-patterns/kubernetes.mdx lines 146-169 and
240-263, rename <runtime-db-password> to <runtime-transient-db-password> and
<operation-db-password> to <runtime-persistent-db-password>.
docs/content/community/contributing/contributing-code/debugging.mdx (1)

161-165: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add Runtime Persistent DB to the table and update the count.

Since the databases have been split into transient and persistent, you should add the runtime-persistent.db path to this table. Also, remember to update the subsequent step to say "the other three databases" instead of "the other two databases".

♻️ Proposed fix
 |----------|------|
 | User DB | `<repo-root>/backend/cmd/server/database/userdb.db` |
-| Runtime DB | `<repo-root>/backend/cmd/server/database/runtime-transient.db` |
+| Runtime Transient DB | `<repo-root>/backend/cmd/server/database/runtime-transient.db` |
+| Runtime Persistent DB | `<repo-root>/backend/cmd/server/database/runtime-persistent.db` |
 | Config DB | `<repo-root>/backend/cmd/server/database/configdb.db` |
 
 5. Click **Test Connection** to verify, then click **Finish**
-6. Repeat for the other two databases
+6. Repeat for the other three databases
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/content/community/contributing/contributing-code/debugging.mdx` around
lines 161 - 165, Update the database setup table to include a Runtime Persistent
DB entry pointing to the runtime-persistent.db path, then change the subsequent
instruction to repeat for “the other three databases” instead of two.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@backend/cmd/server/config/default.json`:
- Around line 45-48: Add a database.runtime_persistent configuration alongside
runtime_transient in default.json, using the renamed operation settings and
matching the existing SQLite configuration structure. Ensure the persistent
runtime database is included in the default configuration without removing or
altering runtime_transient.

In `@backend/internal/oauth/oauth2/revocation/store.go`:
- Around line 60-63: Update stale database terminology in the error messages: in
backend/internal/oauth/oauth2/revocation/store.go lines 60-63 and 84-87, and
backend/internal/system/revocationcache/source_db.go lines 53-56, name the
client as “runtime persistent database client”; in
backend/internal/flow/session/init.go lines 33-36, name the transactioner
“runtime persistent DB transactioner”; and in
backend/internal/oauth/oauth2/dcr/init.go lines 45-47, name it “runtime
transient DB transactioner”.

In `@install/helm/README.md`:
- Around line 431-442: Update the descriptions for the runtime_transient
database settings in the Helm README table to use “Runtime-transient” instead of
“Runtime,” including the Postgres password and Redis password entries. Preserve
the existing configuration keys, defaults, and external Secret behavior.
- Around line 462-474: Update the descriptions in the runtime_persistent
configuration table to replace outdated “Operation” terminology with
“Runtime-persistent,” including the database type and Postgres password entries.
Keep the configuration keys and values unchanged.

In `@install/openchoreo/helm/charts/thunderid-component/values.yaml`:
- Around line 50-52: Add the missing runtime_persistent database configuration,
following runtime_transient conventions: define default SQLite and PostgreSQL
settings in
install/openchoreo/helm/charts/thunderid-component/values.yaml#L50-L52; document
its PostgreSQL flags in install/openchoreo/helm/README.md#L157-L159; and map its
connection details to the expected environment variables in
install/openchoreo/helm/charts/thunderid-component/templates/thunderid-component.yaml#L81-L81
and templates/thunderid-release.yaml#L76-L76.

In
`@install/openchoreo/helm/charts/thunderid-oc-componenttype/templates/thunderid-componenttype.yaml`:
- Line 193: Add the missing runtime_persistent database configuration to all six
identified sites:
install/openchoreo/helm/charts/thunderid-oc-componenttype/templates/thunderid-componenttype.yaml
lines 193-193 (SQLite path) and 257-257 (PostgreSQL DB_OPERATION_* mappings);
install/openchoreo/helm/values.yaml lines 68-70 (SQLite
database/runtime-persistent.db) and 88-88 (commented PostgreSQL template); and
tests/integration/resources/scripts/setup-test-config.ps1 lines 59-63
(PostgreSQL) and 94-102 (SQLite). Keep each block consistent with the
surrounding runtime_transient configuration and existing placeholders.

---

Nitpick comments:
In `@backend/internal/oauth/oauth2/revocation/enforcement_service.go`:
- Around line 92-106: Rename publishOperationDBUnavailableEvent to
publishRuntimePersistentDBUnavailableEvent and update every call site to use the
new name, leaving its event construction and behavior unchanged.
- Around line 64-88: Update EnsureNotRevoked to replace “Operation DB” with
“Runtime Persistent DB” in the circuit-open debug log, and rename
publishOperationDBUnavailableEvent plus all its references to use the Runtime
Persistent DB terminology consistently.

In `@backend/internal/system/database/provider/dbprovider_test.go`:
- Around line 51-62: Update the dummy PostgreSQL datasource names in the test
configuration: change RuntimeTransient from “runtime” to “runtime_transient” and
RuntimePersistent from “operation” to “runtime_persistent”, while leaving the
other datasource entries unchanged.

In `@backend/internal/system/database/provider/dbprovider.go`:
- Around line 131-136: Clean up stale terminology in dbprovider.go: update
GetRuntimeTransientDBClient and GetRuntimePersistentDBClient docstrings to
“runtime transient” and “runtime persistent,” and update the persistent-related
docstring at lines 161-164. Rename operationDBConfig in
GetRuntimePersistentDBClient and the corresponding initialization flow at lines
206-208, updating its log message to mention the persistent client. In the
close-client flow at lines 348-350, rename operationErr and runtimeErr and pass
dbNameRuntimeTransient and dbNameRuntimePersistent to closeClient instead of
hardcoded “runtime” and “operation” strings.

In `@docs/content/community/contributing/contributing-code/debugging.mdx`:
- Around line 161-165: Update the database setup table to include a Runtime
Persistent DB entry pointing to the runtime-persistent.db path, then change the
subsequent instruction to repeat for “the other three databases” instead of two.

In `@docs/content/guides/deployment-patterns/kubernetes.mdx`:
- Around line 146-169: Update the password placeholders in the Kubernetes YAML
examples: in docs/content/guides/deployment-patterns/kubernetes.mdx lines
146-169 and 240-263, rename <runtime-db-password> to
<runtime-transient-db-password> and <operation-db-password> to
<runtime-persistent-db-password>.

In `@docs/content/guides/getting-started/configuration.mdx`:
- Around line 285-288: Update the “Runtime-persistent Database” documentation
text to wrap the configuration key database.runtime_persistent in inline
backticks, preserving the surrounding wording and markup.

In `@install/local-development/docker-compose.yml`:
- Around line 16-19: Align the destination filenames in the Docker Compose
volume mappings with the new database taxonomy: rename the runtime-transient
target from runtime-postgres.sql to runtime-transient-postgres.sql and the
runtime-persistent target from operation-postgres.sql to
runtime-persistent-postgres.sql. Update the corresponding \i commands in
init.sql to reference these renamed container files.

In `@install/local-development/postgres-init/init.sql`:
- Around line 8-9: Update the \i script references in the init.sql connection
blocks to match the renamed destination files configured by the
docker-compose.yml refactor, including both occurrences, while preserving the
existing database connections and initialization order.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 47a63cca-2093-4b55-94ab-7753c32e8025

📥 Commits

Reviewing files that changed from the base of the PR and between 2d4e926 and 6d29d92.

⛔ Files ignored due to path filters (2)
  • .agent/skills/db/SKILL.md is excluded by !.agent/skills/**
  • backend/tests/mocks/database/providermock/DBProviderInterface_mock.go is excluded by !**/*_mock.go
📒 Files selected for processing (99)
  • .github/actions/run-integration-tests/action.yml
  • ARCHITECTURE.md
  • backend/cmd/server/config/default.json
  • backend/cmd/server/deployment.yaml
  • backend/cmd/server/servicemanager.go
  • backend/dbscripts/runtime-persistent/postgres-cleanup.sql
  • backend/dbscripts/runtime-persistent/postgres.sql
  • backend/dbscripts/runtime-persistent/sqlite.sql
  • backend/dbscripts/runtime-transient/postgres-cleanup.sql
  • backend/dbscripts/runtime-transient/postgres.sql
  • backend/dbscripts/runtime-transient/sqlite.sql
  • backend/internal/application/init_test.go
  • backend/internal/authn/passkey/init.go
  • backend/internal/authn/passkey/store.go
  • backend/internal/authn/passkey/store_test.go
  • backend/internal/consent/store.go
  • backend/internal/consent/store_test.go
  • backend/internal/entityprovider/init_test.go
  • backend/internal/flow/mgt/init_test.go
  • backend/internal/flow/session/init.go
  • backend/internal/flow/session/participant_store_test.go
  • backend/internal/flow/session/resolver_test.go
  • backend/internal/flow/session/session_context_store_test.go
  • backend/internal/flow/session/store.go
  • backend/internal/flow/session/store_test.go
  • backend/internal/idp/init_test.go
  • backend/internal/idp/store_test.go
  • backend/internal/oauth/config/config.go
  • backend/internal/oauth/config/config_test.go
  • backend/internal/oauth/oauth2/authz/auth_code_store.go
  • backend/internal/oauth/oauth2/authz/auth_code_store_test.go
  • backend/internal/oauth/oauth2/authz/auth_req_store.go
  • backend/internal/oauth/oauth2/authz/auth_req_store_test.go
  • backend/internal/oauth/oauth2/authz/handler_test.go
  • backend/internal/oauth/oauth2/authz/init.go
  • backend/internal/oauth/oauth2/authz/init_test.go
  • backend/internal/oauth/oauth2/authz/service_test.go
  • backend/internal/oauth/oauth2/ciba/store.go
  • backend/internal/oauth/oauth2/ciba/store_test.go
  • backend/internal/oauth/oauth2/dcr/init.go
  • backend/internal/oauth/oauth2/dcr/init_test.go
  • backend/internal/oauth/oauth2/jti/store.go
  • backend/internal/oauth/oauth2/jti/store_test.go
  • backend/internal/oauth/oauth2/par/store.go
  • backend/internal/oauth/oauth2/par/store_test.go
  • backend/internal/oauth/oauth2/revocation/enforcement_service.go
  • backend/internal/oauth/oauth2/revocation/enforcement_service_test.go
  • backend/internal/oauth/oauth2/revocation/init.go
  • backend/internal/oauth/oauth2/revocation/init_test.go
  • backend/internal/oauth/oauth2/revocation/store.go
  • backend/internal/oauth/oauth2/revocation/store_test.go
  • backend/internal/resource/init_test.go
  • backend/internal/resource/service_test.go
  • backend/internal/runtimestore/dbstore/init.go
  • backend/internal/runtimestore/dbstore/service.go
  • backend/internal/runtimestore/dbstore/service_test.go
  • backend/internal/system/config/config.go
  • backend/internal/system/config/config_test.go
  • backend/internal/system/database/provider/dbprovider.go
  • backend/internal/system/database/provider/dbprovider_test.go
  • backend/internal/system/database/provider/redisprovider.go
  • backend/internal/system/healthcheck/service/healthcheckservice.go
  • backend/internal/system/healthcheck/service/healthcheckservice_test.go
  • backend/internal/system/observability/event/category.go
  • backend/internal/system/observability/event/constants.go
  • backend/internal/system/revocationcache/source_db.go
  • backend/internal/system/revocationcache/source_db_test.go
  • backend/scripts/cleanup_runtime_db.sh
  • backend/tests/resources/deployment.yaml
  • build.ps1
  • build.sh
  • docs/content/community/contributing/contributing-code/debugging.mdx
  • docs/content/guides/deployment-patterns/kubernetes.mdx
  • docs/content/guides/deployment-patterns/openchoreo.mdx
  • docs/content/guides/deployment-patterns/production-guidelines.mdx
  • docs/content/guides/getting-started/configuration.mdx
  • docs/content/guides/getting-started/get-thunderid.mdx
  • install/helm/README.md
  • install/helm/conf/deployment.yaml
  • install/helm/templates/_helpers.tpl
  • install/helm/templates/pvc.yaml
  • install/helm/templates/secret.yaml
  • install/helm/templates/setup-job.yaml
  • install/helm/templates/thunderid-deployment.yaml
  • install/helm/values.yaml
  • install/local-development/docker-compose.yml
  • install/local-development/postgres-init/init.sql
  • install/openchoreo/helm/README.md
  • install/openchoreo/helm/charts/thunderid-component/templates/thunderid-component.yaml
  • install/openchoreo/helm/charts/thunderid-component/templates/thunderid-release.yaml
  • install/openchoreo/helm/charts/thunderid-component/values.yaml
  • install/openchoreo/helm/charts/thunderid-oc-componenttype/templates/thunderid-componenttype.yaml
  • install/openchoreo/helm/values.yaml
  • install/openchoreo/thunderid-oc-resourcetype/README.md
  • install/openchoreo/thunderid-oc-resourcetype/templates/thunderid-resourcetype.yaml
  • tests/integration/resources/deployment.yaml
  • tests/integration/resources/scripts/setup-test-config.ps1
  • tests/integration/resources/scripts/setup-test-config.sh
  • tests/integration/testutils/test_utils.go

Comment thread backend/cmd/server/config/default.json
Comment thread backend/internal/oauth/oauth2/revocation/store.go
Comment thread install/helm/README.md Outdated
Comment thread install/helm/README.md Outdated
Comment thread install/openchoreo/helm/charts/thunderid-component/values.yaml

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@ARCHITECTURE.md`:
- Line 12: Update the repository layout documentation in ARCHITECTURE.md to list
runtime-persistent.db alongside runtime-transient.db, reflecting that both
runtime databases are created in the configured data directory and preserving
the existing database description.

In `@build.ps1`:
- Around line 578-579: Update the database initialization flow around $db_files
and $script_paths to explicitly migrate legacy runtimedb.db and operationdb.db
into runtime-transient.db and runtime-persistent.db before creating or switching
to the new names. Preserve existing data and handle already-migrated
destinations safely; if migration is intentionally performed elsewhere, instead
fail clearly when legacy files are present rather than initializing empty
databases.

In
`@install/openchoreo/helm/charts/thunderid-component/templates/thunderid-release.yaml`:
- Line 76: Update the runtime-transient SQLite path value in the thunderid
release template to read from `.Values.database.runtime_transient.sqlite.path`,
preserving the existing default and quoting behavior so custom nested SQLite
paths are honored.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 29eb88fb-d265-446a-a7ec-d6ec480a0cfb

📥 Commits

Reviewing files that changed from the base of the PR and between 6d29d92 and 2650b73.

⛔ Files ignored due to path filters (2)
  • .agent/skills/db/SKILL.md is excluded by !.agent/skills/**
  • backend/tests/mocks/database/providermock/DBProviderInterface_mock.go is excluded by !**/*_mock.go
📒 Files selected for processing (99)
  • .github/actions/run-integration-tests/action.yml
  • ARCHITECTURE.md
  • backend/cmd/server/config/default.json
  • backend/cmd/server/deployment.yaml
  • backend/cmd/server/servicemanager.go
  • backend/dbscripts/runtime-persistent/postgres-cleanup.sql
  • backend/dbscripts/runtime-persistent/postgres.sql
  • backend/dbscripts/runtime-persistent/sqlite.sql
  • backend/dbscripts/runtime-transient/postgres-cleanup.sql
  • backend/dbscripts/runtime-transient/postgres.sql
  • backend/dbscripts/runtime-transient/sqlite.sql
  • backend/internal/application/init_test.go
  • backend/internal/authn/passkey/init.go
  • backend/internal/authn/passkey/store.go
  • backend/internal/authn/passkey/store_test.go
  • backend/internal/consent/store.go
  • backend/internal/consent/store_test.go
  • backend/internal/entityprovider/init_test.go
  • backend/internal/flow/mgt/init_test.go
  • backend/internal/flow/session/init.go
  • backend/internal/flow/session/participant_store_test.go
  • backend/internal/flow/session/resolver_test.go
  • backend/internal/flow/session/session_context_store_test.go
  • backend/internal/flow/session/store.go
  • backend/internal/flow/session/store_test.go
  • backend/internal/idp/init_test.go
  • backend/internal/idp/store_test.go
  • backend/internal/oauth/config/config.go
  • backend/internal/oauth/config/config_test.go
  • backend/internal/oauth/oauth2/authz/auth_code_store.go
  • backend/internal/oauth/oauth2/authz/auth_code_store_test.go
  • backend/internal/oauth/oauth2/authz/auth_req_store.go
  • backend/internal/oauth/oauth2/authz/auth_req_store_test.go
  • backend/internal/oauth/oauth2/authz/handler_test.go
  • backend/internal/oauth/oauth2/authz/init.go
  • backend/internal/oauth/oauth2/authz/init_test.go
  • backend/internal/oauth/oauth2/authz/service_test.go
  • backend/internal/oauth/oauth2/ciba/store.go
  • backend/internal/oauth/oauth2/ciba/store_test.go
  • backend/internal/oauth/oauth2/dcr/init.go
  • backend/internal/oauth/oauth2/dcr/init_test.go
  • backend/internal/oauth/oauth2/jti/store.go
  • backend/internal/oauth/oauth2/jti/store_test.go
  • backend/internal/oauth/oauth2/par/store.go
  • backend/internal/oauth/oauth2/par/store_test.go
  • backend/internal/oauth/oauth2/revocation/enforcement_service.go
  • backend/internal/oauth/oauth2/revocation/enforcement_service_test.go
  • backend/internal/oauth/oauth2/revocation/init.go
  • backend/internal/oauth/oauth2/revocation/init_test.go
  • backend/internal/oauth/oauth2/revocation/store.go
  • backend/internal/oauth/oauth2/revocation/store_test.go
  • backend/internal/resource/init_test.go
  • backend/internal/resource/service_test.go
  • backend/internal/runtimestore/dbstore/init.go
  • backend/internal/runtimestore/dbstore/service.go
  • backend/internal/runtimestore/dbstore/service_test.go
  • backend/internal/system/config/config.go
  • backend/internal/system/config/config_test.go
  • backend/internal/system/database/provider/dbprovider.go
  • backend/internal/system/database/provider/dbprovider_test.go
  • backend/internal/system/database/provider/redisprovider.go
  • backend/internal/system/healthcheck/service/healthcheckservice.go
  • backend/internal/system/healthcheck/service/healthcheckservice_test.go
  • backend/internal/system/observability/event/category.go
  • backend/internal/system/observability/event/constants.go
  • backend/internal/system/revocationcache/source_db.go
  • backend/internal/system/revocationcache/source_db_test.go
  • backend/scripts/cleanup_runtime_db.sh
  • backend/tests/resources/deployment.yaml
  • build.ps1
  • build.sh
  • docs/content/community/contributing/contributing-code/debugging.mdx
  • docs/content/guides/deployment-patterns/kubernetes.mdx
  • docs/content/guides/deployment-patterns/openchoreo.mdx
  • docs/content/guides/deployment-patterns/production-guidelines.mdx
  • docs/content/guides/getting-started/configuration.mdx
  • docs/content/guides/getting-started/get-thunderid.mdx
  • install/helm/README.md
  • install/helm/conf/deployment.yaml
  • install/helm/templates/_helpers.tpl
  • install/helm/templates/pvc.yaml
  • install/helm/templates/secret.yaml
  • install/helm/templates/setup-job.yaml
  • install/helm/templates/thunderid-deployment.yaml
  • install/helm/values.yaml
  • install/local-development/docker-compose.yml
  • install/local-development/postgres-init/init.sql
  • install/openchoreo/helm/README.md
  • install/openchoreo/helm/charts/thunderid-component/templates/thunderid-component.yaml
  • install/openchoreo/helm/charts/thunderid-component/templates/thunderid-release.yaml
  • install/openchoreo/helm/charts/thunderid-component/values.yaml
  • install/openchoreo/helm/charts/thunderid-oc-componenttype/templates/thunderid-componenttype.yaml
  • install/openchoreo/helm/values.yaml
  • install/openchoreo/thunderid-oc-resourcetype/README.md
  • install/openchoreo/thunderid-oc-resourcetype/templates/thunderid-resourcetype.yaml
  • tests/integration/resources/deployment.yaml
  • tests/integration/resources/scripts/setup-test-config.ps1
  • tests/integration/resources/scripts/setup-test-config.sh
  • tests/integration/testutils/test_utils.go
🚧 Files skipped from review as they are similar to previous changes (87)
  • backend/internal/flow/session/init.go
  • backend/internal/oauth/config/config.go
  • backend/internal/system/healthcheck/service/healthcheckservice.go
  • backend/internal/runtimestore/dbstore/init.go
  • backend/dbscripts/runtime-persistent/sqlite.sql
  • backend/internal/oauth/oauth2/revocation/init.go
  • install/helm/templates/secret.yaml
  • backend/internal/oauth/oauth2/revocation/init_test.go
  • backend/internal/authn/passkey/init.go
  • backend/internal/idp/store_test.go
  • install/local-development/postgres-init/init.sql
  • backend/internal/system/observability/event/constants.go
  • tests/integration/resources/deployment.yaml
  • backend/internal/flow/session/resolver_test.go
  • backend/internal/oauth/oauth2/revocation/enforcement_service.go
  • backend/internal/system/config/config_test.go
  • backend/internal/system/observability/event/category.go
  • backend/internal/oauth/oauth2/dcr/init.go
  • backend/internal/application/init_test.go
  • backend/internal/oauth/oauth2/authz/init.go
  • install/openchoreo/helm/charts/thunderid-oc-componenttype/templates/thunderid-componenttype.yaml
  • backend/internal/oauth/oauth2/authz/auth_code_store.go
  • backend/internal/flow/session/store.go
  • tests/integration/resources/scripts/setup-test-config.ps1
  • backend/internal/oauth/oauth2/dcr/init_test.go
  • backend/internal/oauth/oauth2/ciba/store.go
  • backend/cmd/server/deployment.yaml
  • backend/internal/entityprovider/init_test.go
  • backend/cmd/server/config/default.json
  • install/openchoreo/helm/values.yaml
  • backend/internal/oauth/oauth2/ciba/store_test.go
  • backend/internal/idp/init_test.go
  • install/openchoreo/helm/README.md
  • backend/tests/resources/deployment.yaml
  • backend/internal/authn/passkey/store.go
  • backend/internal/oauth/oauth2/authz/handler_test.go
  • install/openchoreo/helm/charts/thunderid-component/templates/thunderid-component.yaml
  • backend/internal/flow/session/store_test.go
  • docs/content/community/contributing/contributing-code/debugging.mdx
  • backend/internal/oauth/config/config_test.go
  • backend/internal/system/revocationcache/source_db.go
  • tests/integration/testutils/test_utils.go
  • backend/internal/oauth/oauth2/revocation/store.go
  • backend/internal/system/revocationcache/source_db_test.go
  • backend/internal/oauth/oauth2/authz/auth_req_store.go
  • docs/content/guides/deployment-patterns/production-guidelines.mdx
  • backend/cmd/server/servicemanager.go
  • backend/internal/consent/store.go
  • backend/internal/oauth/oauth2/revocation/store_test.go
  • build.sh
  • .github/actions/run-integration-tests/action.yml
  • install/helm/templates/_helpers.tpl
  • backend/dbscripts/runtime-transient/postgres-cleanup.sql
  • backend/internal/oauth/oauth2/authz/init_test.go
  • backend/internal/system/database/provider/redisprovider.go
  • docs/content/guides/getting-started/get-thunderid.mdx
  • docs/content/guides/getting-started/configuration.mdx
  • tests/integration/resources/scripts/setup-test-config.sh
  • install/local-development/docker-compose.yml
  • backend/internal/authn/passkey/store_test.go
  • backend/internal/resource/service_test.go
  • backend/internal/oauth/oauth2/authz/service_test.go
  • install/openchoreo/helm/charts/thunderid-component/values.yaml
  • install/openchoreo/thunderid-oc-resourcetype/README.md
  • backend/internal/flow/mgt/init_test.go
  • backend/internal/oauth/oauth2/jti/store_test.go
  • docs/content/guides/deployment-patterns/openchoreo.mdx
  • install/helm/values.yaml
  • install/openchoreo/thunderid-oc-resourcetype/templates/thunderid-resourcetype.yaml
  • backend/dbscripts/runtime-transient/postgres.sql
  • backend/internal/oauth/oauth2/revocation/enforcement_service_test.go
  • backend/internal/flow/session/participant_store_test.go
  • install/helm/conf/deployment.yaml
  • backend/internal/oauth/oauth2/par/store.go
  • backend/internal/system/database/provider/dbprovider_test.go
  • backend/dbscripts/runtime-persistent/postgres-cleanup.sql
  • backend/internal/resource/init_test.go
  • backend/internal/system/healthcheck/service/healthcheckservice_test.go
  • docs/content/guides/deployment-patterns/kubernetes.mdx
  • backend/internal/oauth/oauth2/par/store_test.go
  • backend/internal/system/database/provider/dbprovider.go
  • backend/dbscripts/runtime-transient/sqlite.sql
  • backend/internal/flow/session/session_context_store_test.go
  • backend/internal/oauth/oauth2/authz/auth_code_store_test.go
  • install/helm/README.md
  • backend/internal/oauth/oauth2/authz/auth_req_store_test.go
  • backend/internal/runtimestore/dbstore/service_test.go

Comment thread ARCHITECTURE.md Outdated
Comment thread build.ps1 Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
install/openchoreo/helm/charts/thunderid-component/templates/thunderid-component.yaml (1)

81-85: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Asymmetric environment variable naming for the transient runtime database.

With the introduction of the runtime_persistent database, the new DB_RUNTIME_PERSISTENT_* environment variables were correctly added, but the transient runtime database continues to use the legacy DB_RUNTIME_* prefix. Since this is a breaking change requiring configuration updates anyway, updating the transient variables to DB_RUNTIME_TRANSIENT_* ensures better clarity and symmetry across the configuration templates.

Consider refactoring the environment variables:

  • install/openchoreo/helm/charts/thunderid-component/templates/thunderid-component.yaml#L81-L85: Rename the environment variable key on line 80 from DB_RUNTIME_PATH to DB_RUNTIME_TRANSIENT_PATH.
  • install/openchoreo/helm/charts/thunderid-oc-componenttype/templates/thunderid-componenttype.yaml#L193-L204: Update the SQLite placeholder mapped in the configuration template to {{ "{{.DB_RUNTIME_TRANSIENT_PATH}}" }}.
  • install/openchoreo/helm/charts/thunderid-oc-componenttype/templates/thunderid-componenttype.yaml#L261-L261: Update the DB_RUNTIME_* placeholders in the adjacent PostgreSQL block (lines 264-269) to DB_RUNTIME_TRANSIENT_* (e.g., DB_RUNTIME_TRANSIENT_HOSTNAME).
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@install/openchoreo/helm/charts/thunderid-component/templates/thunderid-component.yaml`
around lines 81 - 85, The transient runtime database uses the legacy
DB_RUNTIME_* naming; rename the environment key in
install/openchoreo/helm/charts/thunderid-component/templates/thunderid-component.yaml
lines 81-85 to DB_RUNTIME_TRANSIENT_PATH, update the SQLite placeholder in
install/openchoreo/helm/charts/thunderid-oc-componenttype/templates/thunderid-componenttype.yaml
lines 193-204 to DB_RUNTIME_TRANSIENT_PATH, and rename all adjacent PostgreSQL
DB_RUNTIME_* placeholders in lines 261-261 to the corresponding
DB_RUNTIME_TRANSIENT_* names.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In
`@install/openchoreo/helm/charts/thunderid-component/templates/thunderid-component.yaml`:
- Around line 81-85: The transient runtime database uses the legacy DB_RUNTIME_*
naming; rename the environment key in
install/openchoreo/helm/charts/thunderid-component/templates/thunderid-component.yaml
lines 81-85 to DB_RUNTIME_TRANSIENT_PATH, update the SQLite placeholder in
install/openchoreo/helm/charts/thunderid-oc-componenttype/templates/thunderid-componenttype.yaml
lines 193-204 to DB_RUNTIME_TRANSIENT_PATH, and rename all adjacent PostgreSQL
DB_RUNTIME_* placeholders in lines 261-261 to the corresponding
DB_RUNTIME_TRANSIENT_* names.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 363f01b2-aea5-47ff-8b7c-ef4e208bd373

📥 Commits

Reviewing files that changed from the base of the PR and between 2650b73 and 40650fd.

⛔ Files ignored due to path filters (2)
  • .agent/skills/db/SKILL.md is excluded by !.agent/skills/**
  • backend/tests/mocks/database/providermock/DBProviderInterface_mock.go is excluded by !**/*_mock.go
📒 Files selected for processing (99)
  • .github/actions/run-integration-tests/action.yml
  • ARCHITECTURE.md
  • backend/cmd/server/config/default.json
  • backend/cmd/server/deployment.yaml
  • backend/cmd/server/servicemanager.go
  • backend/dbscripts/runtime-persistent/postgres-cleanup.sql
  • backend/dbscripts/runtime-persistent/postgres.sql
  • backend/dbscripts/runtime-persistent/sqlite.sql
  • backend/dbscripts/runtime-transient/postgres-cleanup.sql
  • backend/dbscripts/runtime-transient/postgres.sql
  • backend/dbscripts/runtime-transient/sqlite.sql
  • backend/internal/application/init_test.go
  • backend/internal/authn/passkey/init.go
  • backend/internal/authn/passkey/store.go
  • backend/internal/authn/passkey/store_test.go
  • backend/internal/consent/store.go
  • backend/internal/consent/store_test.go
  • backend/internal/entityprovider/init_test.go
  • backend/internal/flow/mgt/init_test.go
  • backend/internal/flow/session/init.go
  • backend/internal/flow/session/participant_store_test.go
  • backend/internal/flow/session/resolver_test.go
  • backend/internal/flow/session/session_context_store_test.go
  • backend/internal/flow/session/store.go
  • backend/internal/flow/session/store_test.go
  • backend/internal/idp/init_test.go
  • backend/internal/idp/store_test.go
  • backend/internal/oauth/config/config.go
  • backend/internal/oauth/config/config_test.go
  • backend/internal/oauth/oauth2/authz/auth_code_store.go
  • backend/internal/oauth/oauth2/authz/auth_code_store_test.go
  • backend/internal/oauth/oauth2/authz/auth_req_store.go
  • backend/internal/oauth/oauth2/authz/auth_req_store_test.go
  • backend/internal/oauth/oauth2/authz/handler_test.go
  • backend/internal/oauth/oauth2/authz/init.go
  • backend/internal/oauth/oauth2/authz/init_test.go
  • backend/internal/oauth/oauth2/authz/service_test.go
  • backend/internal/oauth/oauth2/ciba/store.go
  • backend/internal/oauth/oauth2/ciba/store_test.go
  • backend/internal/oauth/oauth2/dcr/init.go
  • backend/internal/oauth/oauth2/dcr/init_test.go
  • backend/internal/oauth/oauth2/jti/store.go
  • backend/internal/oauth/oauth2/jti/store_test.go
  • backend/internal/oauth/oauth2/par/store.go
  • backend/internal/oauth/oauth2/par/store_test.go
  • backend/internal/oauth/oauth2/revocation/enforcement_service.go
  • backend/internal/oauth/oauth2/revocation/enforcement_service_test.go
  • backend/internal/oauth/oauth2/revocation/init.go
  • backend/internal/oauth/oauth2/revocation/init_test.go
  • backend/internal/oauth/oauth2/revocation/store.go
  • backend/internal/oauth/oauth2/revocation/store_test.go
  • backend/internal/resource/init_test.go
  • backend/internal/resource/service_test.go
  • backend/internal/runtimestore/dbstore/init.go
  • backend/internal/runtimestore/dbstore/service.go
  • backend/internal/runtimestore/dbstore/service_test.go
  • backend/internal/system/config/config.go
  • backend/internal/system/config/config_test.go
  • backend/internal/system/database/provider/dbprovider.go
  • backend/internal/system/database/provider/dbprovider_test.go
  • backend/internal/system/database/provider/redisprovider.go
  • backend/internal/system/healthcheck/service/healthcheckservice.go
  • backend/internal/system/healthcheck/service/healthcheckservice_test.go
  • backend/internal/system/observability/event/category.go
  • backend/internal/system/observability/event/constants.go
  • backend/internal/system/revocationcache/source_db.go
  • backend/internal/system/revocationcache/source_db_test.go
  • backend/scripts/cleanup_runtime_db.sh
  • backend/tests/resources/deployment.yaml
  • build.ps1
  • build.sh
  • docs/content/community/contributing/contributing-code/debugging.mdx
  • docs/content/guides/deployment-patterns/kubernetes.mdx
  • docs/content/guides/deployment-patterns/openchoreo.mdx
  • docs/content/guides/deployment-patterns/production-guidelines.mdx
  • docs/content/guides/getting-started/configuration.mdx
  • docs/content/guides/getting-started/get-thunderid.mdx
  • install/helm/README.md
  • install/helm/conf/deployment.yaml
  • install/helm/templates/_helpers.tpl
  • install/helm/templates/pvc.yaml
  • install/helm/templates/secret.yaml
  • install/helm/templates/setup-job.yaml
  • install/helm/templates/thunderid-deployment.yaml
  • install/helm/values.yaml
  • install/local-development/docker-compose.yml
  • install/local-development/postgres-init/init.sql
  • install/openchoreo/helm/README.md
  • install/openchoreo/helm/charts/thunderid-component/templates/thunderid-component.yaml
  • install/openchoreo/helm/charts/thunderid-component/templates/thunderid-release.yaml
  • install/openchoreo/helm/charts/thunderid-component/values.yaml
  • install/openchoreo/helm/charts/thunderid-oc-componenttype/templates/thunderid-componenttype.yaml
  • install/openchoreo/helm/values.yaml
  • install/openchoreo/thunderid-oc-resourcetype/README.md
  • install/openchoreo/thunderid-oc-resourcetype/templates/thunderid-resourcetype.yaml
  • tests/integration/resources/deployment.yaml
  • tests/integration/resources/scripts/setup-test-config.ps1
  • tests/integration/resources/scripts/setup-test-config.sh
  • tests/integration/testutils/test_utils.go
🚧 Files skipped from review as they are similar to previous changes (84)
  • backend/internal/flow/session/init.go
  • docs/content/community/contributing/contributing-code/debugging.mdx
  • backend/internal/authn/passkey/init.go
  • backend/internal/oauth/oauth2/dcr/init.go
  • backend/internal/oauth/oauth2/authz/handler_test.go
  • backend/internal/oauth/oauth2/authz/init.go
  • backend/internal/oauth/oauth2/revocation/enforcement_service.go
  • ARCHITECTURE.md
  • backend/cmd/server/deployment.yaml
  • backend/internal/entityprovider/init_test.go
  • backend/internal/oauth/oauth2/revocation/init_test.go
  • backend/internal/runtimestore/dbstore/init.go
  • install/helm/templates/secret.yaml
  • backend/internal/oauth/oauth2/revocation/init.go
  • backend/internal/oauth/oauth2/authz/auth_req_store.go
  • backend/internal/oauth/oauth2/authz/auth_code_store.go
  • backend/internal/flow/session/store.go
  • backend/internal/system/healthcheck/service/healthcheckservice.go
  • install/local-development/postgres-init/init.sql
  • backend/internal/oauth/oauth2/par/store.go
  • backend/tests/resources/deployment.yaml
  • install/helm/templates/setup-job.yaml
  • backend/internal/system/database/provider/redisprovider.go
  • backend/internal/oauth/oauth2/revocation/store.go
  • tests/integration/resources/scripts/setup-test-config.ps1
  • backend/internal/system/observability/event/category.go
  • backend/internal/flow/session/resolver_test.go
  • backend/dbscripts/runtime-transient/postgres-cleanup.sql
  • install/openchoreo/thunderid-oc-resourcetype/README.md
  • tests/integration/testutils/test_utils.go
  • backend/internal/application/init_test.go
  • backend/dbscripts/runtime-persistent/postgres.sql
  • install/openchoreo/helm/values.yaml
  • backend/internal/idp/store_test.go
  • backend/internal/runtimestore/dbstore/service.go
  • docs/content/guides/deployment-patterns/production-guidelines.mdx
  • backend/internal/resource/init_test.go
  • backend/dbscripts/runtime-persistent/sqlite.sql
  • docs/content/guides/getting-started/get-thunderid.mdx
  • backend/internal/system/observability/event/constants.go
  • backend/internal/oauth/oauth2/dcr/init_test.go
  • backend/internal/oauth/config/config_test.go
  • backend/internal/oauth/oauth2/revocation/enforcement_service_test.go
  • backend/dbscripts/runtime-persistent/postgres-cleanup.sql
  • install/helm/values.yaml
  • backend/internal/system/config/config.go
  • backend/internal/consent/store.go
  • tests/integration/resources/scripts/setup-test-config.sh
  • install/openchoreo/helm/charts/thunderid-component/templates/thunderid-release.yaml
  • backend/internal/system/revocationcache/source_db_test.go
  • backend/cmd/server/servicemanager.go
  • backend/internal/idp/init_test.go
  • backend/internal/oauth/oauth2/authz/service_test.go
  • backend/dbscripts/runtime-transient/sqlite.sql
  • backend/internal/system/healthcheck/service/healthcheckservice_test.go
  • backend/internal/flow/session/session_context_store_test.go
  • install/helm/README.md
  • backend/internal/oauth/oauth2/ciba/store.go
  • backend/internal/resource/service_test.go
  • build.sh
  • .github/actions/run-integration-tests/action.yml
  • install/openchoreo/helm/README.md
  • backend/internal/oauth/oauth2/jti/store_test.go
  • backend/internal/oauth/oauth2/revocation/store_test.go
  • docs/content/guides/deployment-patterns/openchoreo.mdx
  • backend/internal/flow/mgt/init_test.go
  • backend/scripts/cleanup_runtime_db.sh
  • tests/integration/resources/deployment.yaml
  • backend/internal/consent/store_test.go
  • install/helm/templates/_helpers.tpl
  • install/helm/conf/deployment.yaml
  • backend/dbscripts/runtime-transient/postgres.sql
  • backend/internal/oauth/oauth2/authz/init_test.go
  • backend/internal/flow/session/participant_store_test.go
  • backend/internal/system/database/provider/dbprovider_test.go
  • install/openchoreo/thunderid-oc-resourcetype/templates/thunderid-resourcetype.yaml
  • backend/internal/oauth/oauth2/authz/auth_code_store_test.go
  • backend/internal/oauth/oauth2/ciba/store_test.go
  • docs/content/guides/deployment-patterns/kubernetes.mdx
  • backend/internal/flow/session/store_test.go
  • docs/content/guides/getting-started/configuration.mdx
  • backend/internal/oauth/oauth2/authz/auth_req_store_test.go
  • backend/internal/system/database/provider/dbprovider.go
  • backend/internal/runtimestore/dbstore/service_test.go

rajithacharith
rajithacharith previously approved these changes Jul 17, 2026
@rajithacharith

Copy link
Copy Markdown
Contributor

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Comment thread backend/internal/system/database/provider/dbprovider.go Outdated
Comment thread backend/internal/system/database/provider/dbprovider.go Outdated
Comment thread backend/internal/system/database/provider/dbprovider.go Outdated
Comment thread backend/internal/system/database/provider/dbprovider.go Outdated
Comment thread backend/internal/system/observability/event/constants.go Outdated
Comment thread install/helm/conf/deployment.yaml Outdated
Comment thread docs/content/guides/deployment-patterns/kubernetes.mdx Outdated
Comment thread install/local-development/postgres-init/init.sql Outdated
Comment thread install/local-development/postgres-init/init.sql Outdated
Comment thread .agent/skills/db/SKILL.md
Comment thread backend/cmd/server/deployment.yaml
Comment thread install/openchoreo/thunderid-oc-resourcetype/README.md Outdated
Comment thread backend/internal/system/database/provider/dbprovider.go Outdated
Comment thread backend/internal/system/database/provider/dbprovider.go Outdated
Comment thread backend/internal/system/database/provider/dbprovider.go Outdated
Comment thread backend/internal/system/database/provider/dbprovider.go Outdated
Comment thread backend/internal/system/healthcheck/service/healthcheckservice_test.go Outdated
Comment thread ARCHITECTURE.md Outdated
Comment thread backend/internal/system/healthcheck/service/healthcheckservice_test.go Outdated
Comment thread ARCHITECTURE.md
Comment thread install/helm/templates/_helpers.tpl Outdated
Comment thread install/helm/README.md Outdated
Comment thread install/helm/README.md Outdated
…to runtime-transient

Rename the two runtime-facing logical databases to reflect the lifetime of
the data they hold:

- operation -> runtime-persistent: long-lived operational state that must
  survive restarts (revoked tokens, SSO sessions, consent records).
- runtime   -> runtime-transient: short-lived state (authorization codes and
  requests, PAR, JTI records, WebAuthn/VCI state, flow contexts).

Covers the Go config struct and tags, the DB provider interface and all
callers, the observability event, dbscripts directories and cleanup
procedures, build/packaging scripts, docker-compose, integration test
tooling and CI, the Helm and OpenChoreo charts, and documentation.

BREAKING CHANGE: the database.runtime and database.operation configuration
keys are renamed to database.runtime_transient and database.runtime_persistent.
Existing deployment.yaml, Helm values, and environment configs must be updated.

Fixes thunder-id#4076
Comment thread .agent/skills/db/SKILL.md
| `entitydb` | Identity data: users, groups, indexed user attributes |
| Database (config key) | Responsibility |
|-----------------------|---------------------------------------------------------------|
| `config` | Identity configuration data Ex: applications, authentication flows, roles, identity providers |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| `config` | Identity configuration data Ex: applications, authentication flows, roles, identity providers |
| `configdb` | Identity configuration data Ex: applications, authentication flows, roles, identity providers |

@@ -16,48 +16,48 @@
-- ----------------------------------------------------------------------------

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall we rename the folder to runtime-persistentdb to be consistent with config and entitydb? WDYT?

@indeewari
indeewari added this pull request to the merge queue Jul 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking change The feature/ improvement will alter the existing behaviour Type/Improvement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Renaming databases

5 participants