Skip to content

docs(rum): add RUM resources Best practices note - #724

Open
michael-richey wants to merge 2 commits into
michael.richey/add-rum-configfrom
michael.richey/add-rum-readme-cleanup
Open

michael-richey wants to merge 2 commits into
michael.richey/add-rum-configfrom
michael.richey/add-rum-readme-cleanup

Conversation

@michael-richey

Copy link
Copy Markdown
Collaborator

Summary

Cleanup PR for the RUM initiative. Adds 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.

Stacked on #723 (rum_config) — this is the top of the RUM stack.

What it documents

  • Intake data is not migrated (events, analytics, replay sessions, playlist→session associations).
  • rum_operations / rum_replay_playlists are static definitions; query fields 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_handle is stable (not remapped); soft dep on teams.
  • rum_config: singleton; only enforced_application_tags is configurable.
  • Excluded: rum_teams_ownership_rules (read-only), rum_retention_quotas (no list endpoint).

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.

Testing

  • Full unit suite: 1530 passed, 5 pre-existing subprocess-test failures unchanged, 8 skipped.

The RUM stack (in merge order)

  1. test(rum): pin rum_applications model behavior; document in README #714 — rum_applications prep (tests + README)
  2. feat(rum): add rum_metrics resource #715 — rum_metrics
  3. feat(rum): add rum_retention_filters resource #716 — rum_retention_filters
  4. feat(rum): add rum_retention_filters_order resource #717 — rum_retention_filters_order
  5. feat(rum): add rum_permanent_retention_filters resource #718 — rum_permanent_retention_filters
  6. feat(rum): add rum_operations resource #719 — rum_operations
  7. feat(rum): add rum_operation_strong_links resource #720 — rum_operation_strong_links
  8. feat(rum): add rum_replay_playlists resource (shell only) #721 — rum_replay_playlists
  9. feat(rum): add rum_teams_ownership_mappings resource #722 — rum_teams_ownership_mappings
  10. feat(rum): add rum_config resource (singleton) #723 — rum_config
  11. this PR — README cleanup

@michael-richey
michael-richey requested a review from a team as a code owner September 25, 2026 20:31

@michael-richey michael-richey left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 Low severity

Open (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.

Comment thread README.md Outdated

- **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.
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-config branch from 9906fd9 to 11e9493 Compare September 25, 2026 21:25
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-readme-cleanup branch from 8df97d4 to 19956a9 Compare September 25, 2026 21:25
@michael-richey

Copy link
Copy Markdown
Collaborator Author

Fixed in 5cf20b4f. Wording corrected to: "reads use GET, but mutations are PATCH-only (configure cross_product_sampling — no POST/DELETE)" so users don't infer the resource cannot be imported.

@michael-richey
michael-richey force-pushed the michael.richey/add-rum-config branch from 11e9493 to 3b15fa3 Compare September 28, 2026 14:10
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-readme-cleanup branch from 19956a9 to b569449 Compare September 28, 2026 14:10
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-config branch from 3b15fa3 to a96af0f Compare October 1, 2026 15:54
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-readme-cleanup branch from b569449 to 56d7acf Compare October 1, 2026 15:54
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-config branch from a96af0f to 39a3adb Compare October 1, 2026 16:13
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-readme-cleanup branch from 56d7acf to 107272d Compare October 1, 2026 16:13
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-config branch from 39a3adb to a183917 Compare October 1, 2026 18:13
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-readme-cleanup branch from 107272d to 9b8495c Compare October 1, 2026 18:13
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-config branch from a183917 to db198e5 Compare October 1, 2026 18:49
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-readme-cleanup branch from 9b8495c to 274b38d Compare October 1, 2026 18:49
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-config branch from db198e5 to 3ab658b Compare October 1, 2026 19:43
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-readme-cleanup branch from 274b38d to 9d0f390 Compare October 1, 2026 19:43
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-config branch from 3ab658b to 65d39cd Compare October 1, 2026 20:17
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-readme-cleanup branch 2 times, most recently from 15a68ff to 044e565 Compare October 1, 2026 20:37
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-config branch 2 times, most recently from 2d94958 to ac43644 Compare October 1, 2026 21:17
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-readme-cleanup branch from 044e565 to 0bef351 Compare October 1, 2026 21:17
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).
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-config branch from ac43644 to 1cab88e Compare October 2, 2026 01:45
@michael-richey
michael-richey force-pushed the michael.richey/add-rum-readme-cleanup branch from 0bef351 to e526b6e Compare October 2, 2026 01:45
@michael-richey

Copy link
Copy Markdown
Collaborator Author

Thanks for the README follow-up — this improves operator expectations significantly.

The clarifications around:

  • app-id constraints for app-scoped resources,
  • singleton/update-only behavior, and
  • resources that skip source↔destination mapping

are especially helpful for reducing surprise during first sync runs.

No blocking concerns from my side on this docs update.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants