Repository navigation
demo: replace playground with configurable Compose setup - #8
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requirement
Replace the provider-specific playground with a configurable Docker Compose example. The default stack builds PostgreSQL 18 with the validator, starts a pinned Keycloak realm, and lets a user connect through stock
psql's device authorization flow. A separate Compose file accepts reviewed local configuration for an external issuer.Changes
connect:postgresscope, a fixed demo audience and subject mapping, and operator instructions.Trust boundary and failure behavior
The demo PostgreSQL HBA permits only TLS OAuth access to
demoasapp_reader, with an exact issuer, required scope, andpg_ident.confmapping. Other roles, subjects, missing scopes, and invalid tokens remain denied by the validator and PostgreSQL. The external-provider stack requires an explicit configuration directory. The public demo credentials, peer recovery rule, and generated CA are for local evaluation only.Compatibility and operations
The old
playground/scripts and Node.js client are removed. Usedocker compose up --build -danddocker compose run --rm psqlfor the bundled Keycloak example, orcompose.external.ymlfor an external issuer. Existing playground state is not migrated. Reverting this commit restores the old files;docker compose down --volumesremoves demo data and generated certificates when desired.The single-file external provider configuration is a separate follow-up in #9.
Verification
docker compose --progress=plain build certspassed on arm64 after clearing local Docker build cache.docker compose up --detach --no-buildstarted Keycloak and PostgreSQL reported healthy.docker run --rm pg-oauth-validator-demo:pg18 ... make verify-devpassed, including strict build, component tests, andcheck-demo-config.python3 tests/demo_config_test.py,sh scripts/ci/check-source-tree.sh, and default/external Compose configuration checks passed.The interactive device approval and successful
psqllogin still need a manual browser check. This is a demo change, not production platform certification.