Repository navigation
docs: add channel installation data model - #229
Conversation
👍 GitRank PR AnalysisScore: 20 points
Eligibility Checks
Impact SummaryThis PR establishes a long-term data model for shared channel installations by separating provider installations, internal connections, Spritz runtime state, and per-channel routing policies. It includes three architecture documents (1,355 lines), new API endpoints for configuration and route management, Slack gateway enhancements for policy handling, and comprehensive test coverage. The changes enable future support for multiple connections per installation and per-channel mention policies without mixing provider-specific and deployment-specific concerns. Analysis DetailsComponent Classification: This PR introduces architectural documentation and supporting code for a new data model, spanning multiple subsystems (API, Slack gateway, storage contracts). It doesn't fit neatly into a single component category, making OTHER the appropriate classification. Severity Justification: This is a P2 (Medium) contribution. It adds significant new functionality (channel installation data model, configuration projection, route management) with comprehensive tests and documentation, but it is primarily architectural/foundational work rather than fixing a critical bug or addressing an immediate production issue. Eligibility Notes: Tests are required and included: the PR adds 154 lines of test code in internal_bindings_test.go covering configuration projection, null handling, and default preservation, plus 110 lines in backend_client_test.go and 324 lines in gateway_test.go. The fix_implementation check passes because code changes align with the architectural design documented in the PR. The pr_linked check passes due to comprehensive description and related documentation references. This is not a bug fix (issue=false) but rather a feature/architecture implementation. Analyzed by GitRank 🤖 |
|
Final validation report
|
Summary
Shared channel installs need a cleaner long-term model before Slack workspace installs grow more special cases.
This documents a provider-agnostic schema that separates the external provider install, internal connection, Spritz runtime backing, and per-channel route policy.
It also pins the naming decisions we discussed:
provider = slackis valid in this domain, while coretargetType,preset,runtime, andscopeTypefields should not be part of the generic installation key.What Changed
This adds one Spritz architecture doc for the channel installation data model.
The doc defines the recommended tables, routing behavior, UI/API shape, and migration path from the current combined installation row.
channel_installationfor the provider app installation.channel_connectionfor one or more internal connections under that install.spritz_channel_connectionfor Spritz-specific preset and runtime binding state.channel_routefor per-channel routing andrequireMentionpolicy.Testing
This is a docs-only change.
I checked the staged markdown diff for whitespace errors.
git diff --cached --checkRisks
Runtime behavior does not change in this PR.
The main risk is naming churn during implementation review, but the doc calls out the terms that should stay out of the generic schema.