Repository navigation
Conversation
Copy the bundle assembled at the root c742e48 pins: V1, eight later migrations and grants. baseline.sha256 is now 1dc82694, the value root records in source-revisions.json.
Copy the runtime grants the backend assembler generates once the trading role is limited to the outbox, receipt and audit tables.
The worker SQL in four e2e tests now runs through a login that holds only idea2strategy_trading, so a missing grant fails a test.
This was referenced Oct 27, 2026
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.
Depends on #160. This branch is stacked on
chore/revendor-canonical-baseline, so its re-vendor commit shows here until #160 merges.Related: Idea2Strategy/Idea2Strategy-backend#298 narrows the grants in
DatabaseAccessPolicy; merge it first.What and why
idea2strategy_tradingheld SELECT, INSERT, UPDATE and DELETE on everyoperationstable, operator credentials and sessions included. The backend change limits it to what the trading worker executes: SELECT and INSERT onoutbox_messages, SELECT, INSERT and UPDATE onoutbox_consumer_receipts, INSERT onaudit_events, and SELECT onaudit_events.idempotency_keyonly (theon conflictarbiter needs it).db/canonical-baseline/R__database_runtime_grants.sqlis the assembler output with that change;baseline.manifestandbaseline.sha256are regenerated. No other file in the baseline changes.trading_runtime_probe, a login whose only membership isidea2strategy_trading; fixtures and assertions still run as the owner.BotControlIntegrationE2ETestruns the whole worker context that way.operations, not changed here: the BEFORE INSERT trigger ontrading.orderscallsidentity.require_active_account, a SECURITY INVOKER function that locksidentity.accountsFOR SHARE, and the trading role holds nothing inidentity. The bot-control test grants that to the probe login only, never to the group role, so the grants under test stay as generated.Verified
69dd804plus the change, backtesta568df0, tradingeb97bc3, data-pipelined8bd3c0) through:db-migration:run. All nineV*.sqlfiles are byte-identical to chore(schema): re-vendor the canonical baseline #160; onlyR__database_runtime_grants.sqldiffers, and the copy here is that output (6f96408c).permission denied for table outbox_consumer_receiptsoraudit_events../gradlew check --rerun-tasks --no-daemon --no-build-cachewith Docker (colima): BUILD SUCCESSFUL, 745 tests, 0 skipped, failed or errored.Checklist
idea2strategy_tradingonlycanonical_baseline_sha256refresh follows the backend merge