docs(data-flow): propose silver->gold data contract (RFC)#1791
Conversation
Draft contract for the planned DB split (ingestion bronze/staging/silver vs gold). Defines five datasets based on the current silver schemas (commits, pull requests, PR comments, task field history, chat activity) plus two auxiliary dimensions (repository branches, task statuses), each with a JSON Schema, field descriptions, examples, and a growing list of interpretation cases (patch_id first/last rules, statusCategory close detection, enriched events vs raw deltas, honest-NULL chat counters). Normative additions over current state are limited to person_id on every dataset and patch_id on commits; all other gaps are listed in Appendix A. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Roman Mitasov <Roman.Mitasov@constructor.tech>
|
Warning Review limit reached
Next review available in: 52 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
What
RFC / proposal only — nothing is implemented by this PR. This adds a draft data contract for the planned database split: ingestion DB (bronze + staging + silver) vs gold DB, with a fixed interface between them.
New doc:
docs/domain/ingestion-data-flow/specs/SILVER-GOLD-DATA-CONTRACT.mdShape of the contract
Five datasets + two auxiliary dimensions, all based on the current silver tables (real column names and types):
class_git_commits/class_git_repository_branchesclass_git_pull_requestsclass_git_pull_requests_commentsclass_task_field_history/class_task_statusesclass_collab_chat_activity(daily aggregates; per-message is a future extension)Each dataset section carries a JSON Schema, field descriptions, example records, and a growing list of Cases — normative interpretation rules for consumers, e.g.:
status_category = 'done'via the task_statuses dimension, never by status display names (same semantics as fix(task-delivery): detect closed tasks by statusCategory, not display name (#1541) #1732).Normative additions over current state
Only two:
person_id(stable UUID from Identity Resolution, resolved on the producer side) on every dataset, andpatch_idon commits. Everything else the contract demands but silver doesn't deliver yet is listed explicitly in Appendix A (no git identity_inputs, no tenant column in task_field_history, GitLab diff stats = 0, no per-message data, …) — that list is effectively the implementation backlog if the format is accepted.Feedback wanted
source_idvsinsight_source_id, missing tenant in task history) as part of the split🤖 Generated with Claude Code