docs(rum): add RUM resources Best practices note - #724
michael-richey wants to merge 2 commits into
Conversation
michael-richey
left a comment
There was a problem hiding this comment.
Nice README follow-up.
This section makes the RUM resource scope and limitations much clearer (especially intake-data boundaries, singleton/configure-only semantics, and excluded endpoints). I think this will reduce operator confusion significantly.
No issues from my side.
e1b613c to
9906fd9
Compare
0582708 to
8df97d4
Compare
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The permanent-retention-filter documentation incorrectly describes the entire endpoint set as PATCH-only despite GET support.
Get a fresh assessment by requesting another Copilot review.
Review effort: Balanced
Findings: 1
What changed in this PR
Adds RUM resource limitations and synchronization behavior to the README.
Changes:
- Documents intake-data exclusions and partial-CRUD behavior.
- Clarifies resource dependencies and unsupported RUM resources.
| File | Description |
|---|---|
| README.md | Adds RUM best-practices guidance. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
|
||
| - **Intake data is not migrated.** RUM events, analytics/aggregation, replay sessions, and the `.../sessions` playlist associations are intake-tied and out of scope (consistent with this tool's general stance on ingested data). The tool syncs the resource *definitions* only. | ||
| - **`rum_operations`** and **`rum_replay_playlists`** are static definitions (name, query, journey rules / name, description). Their `query` fields are RUM query filters (e.g. `@type:view`), not session ids, so no session-id stripping is required. | ||
| - **`rum_permanent_retention_filters`** are system-provisioned with fixed ids identical across orgs; the endpoint set is PATCH-only (configure `cross_product_sampling`), so `create` delegates to `update` and `delete` is a no-op. |
9906fd9 to
11e9493
Compare
8df97d4 to
19956a9
Compare
|
Fixed in |
11e9493 to
3b15fa3
Compare
19956a9 to
b569449
Compare
3b15fa3 to
a96af0f
Compare
b569449 to
56d7acf
Compare
a96af0f to
39a3adb
Compare
56d7acf to
107272d
Compare
39a3adb to
a183917
Compare
107272d to
9b8495c
Compare
a183917 to
db198e5
Compare
9b8495c to
274b38d
Compare
db198e5 to
3ab658b
Compare
274b38d to
9d0f390
Compare
3ab658b to
65d39cd
Compare
15a68ff to
044e565
Compare
2d94958 to
ac43644
Compare
044e565 to
0bef351
Compare
Add a 'RUM resources' subsection under Best practices documenting the intake limitations, partial-CRUD adaptations, and excluded resources for the new RUM resource types. No code changes. Privacy audit: inspected the cumulative diff from main to this stack head across all new model/test/README files. All test fixtures use obviously synthetic values (app-src, app-dst, rf-1, rf-dst, ef-1, op-1, op-dst, sl-1, pl-1, m-1, feat-1, team-platform, rum.metric.count, checkout-flow, prod-replay, rum-config). No real UUIDs, emails, tokens, org ids, or customer data present.
Per review: 'the endpoint set is PATCH-only' was inaccurate because the resource is enumerated with GET requests. Clarified that reads use GET but mutations are PATCH-only (no POST/DELETE).
ac43644 to
1cab88e
Compare
0bef351 to
e526b6e
Compare
|
Thanks for the README follow-up — this improves operator expectations significantly. The clarifications around:
are especially helpful for reducing surprise during first sync runs. No blocking concerns from my side on this docs update. |

Summary
Cleanup PR for the RUM initiative. Adds a
RUM resourcessubsection under Best practices documenting the intake limitations, partial-CRUD adaptations, and excluded resources for the new RUM resource types. No code changes.Stacked on #723 (
rum_config) — this is the top of the RUM stack.What it documents
rum_operations/rum_replay_playlistsare static definitions;queryfields are RUM query filters, not session ids.rum_permanent_retention_filters: PATCH-only configure (create delegates to update, delete is a no-op).rum_teams_ownership_mappings: update = delete+recreate;team_handleis stable (not remapped); soft dep onteams.rum_config: singleton; onlyenforced_application_tagsis configurable.rum_teams_ownership_rules(read-only),rum_retention_quotas(no list endpoint).Privacy audit
Inspected the cumulative diff from
mainto this stack head across all new model/test/README files. All test fixtures use obviously synthetic values (app-src,app-dst,rf-1,rf-dst,ef-1,op-1,op-dst,sl-1,pl-1,m-1,feat-1,team-platform,rum.metric.count,checkout-flow,prod-replay,rum-config). No real UUIDs, emails, tokens, org ids, or customer data present.Testing
The RUM stack (in merge order)
rum_applicationsprep (tests + README)rum_metricsrum_retention_filtersrum_retention_filters_orderrum_permanent_retention_filtersrum_operationsrum_operation_strong_linksrum_replay_playlistsrum_teams_ownership_mappingsrum_config