feat: validate API keys against Asobi SaaS control plane#62
Closed
feat: validate API keys against Asobi SaaS control plane#62
Conversation
New Nova pre_request plugin that calls the saas /internal/validate endpoint to verify API keys carried in the x-asobi-key header. Stores the resolved tenant/game/environment context on the request so downstream handlers can scope queries. A short-lived ETS cache (5 min TTL) keeps hot keys off the wire. When environment_name is configured for the deployment (e.g. "dev" or "live"), responses whose env_name doesn't match are rejected with 403 — so a dev key against the live engine, or vice versa, is blocked at the edge even though both deployments talk to the same saas. The plugin is a passthrough when saas_internal_url is unset, so local dev and the existing test suites keep working without a saas running. Prod config takes the URL, internal token, and env name from env vars. Adds asobi_saas_key_plugin_SUITE with 8 cases covering the full matrix (passthrough, skip, missing/invalid/mismatched/valid key, cache hit, saas unreachable), driven through a mini cowboy mock saas so the real httpc + URL encoding paths are exercised.
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.
Summary
Test plan