Skip to content

[19.0][MIG] sentry_client: Migration to 19.0#3622

Draft
dnplkndll wants to merge 2 commits into
OCA:19.0from
ledoent:19.0-add-sentry_client
Draft

[19.0][MIG] sentry_client: Migration to 19.0#3622
dnplkndll wants to merge 2 commits into
OCA:19.0from
ledoent:19.0-add-sentry_client

Conversation

@dnplkndll
Copy link
Copy Markdown
Contributor

@dnplkndll dnplkndll commented May 21, 2026

[DRAFT] 19.0 port of #3627
([18.0][ADD] sentry_client). Hold for review until the 18.0 lead PR
lands
— opened now to make the 19.0 delta visible alongside.

Commit ladder

[18.0][ADD] sentry_client: ...               ← cherry-pick from 18.0 PR (original [ADD])
[19.0][MIG] sentry_client: Migration to 19.0 ← 3 API adaptations + manifest bump

The [MIG] commit is the diff a reviewer needs to evaluate.

API adaptations in the [MIG] commit

  • user.groups_iduser.all_group_ids. 19.0 split the groups
    field into a stored direct collection (groups_id) plus a computed
    transitive closure (all_group_ids). We want the closure so role
    tags include inherited groups.
  • group.category_idgroup.privilege_id.category_id. 19.0
    introduced the privilege layer between groups and categories.
  • Manifest version 18.0.1.0.019.0.1.0.0.

That's the full delta. The OWL error_handlers registry, settings
<block>/<setting> pattern, asset bundle keys
(web.assets_backend, web.assets_frontend), @web/core/registry
imports, _t translation idiom, and Component from @odoo/owl are
all identical between 18.0 and 19.0.

Refer to the 18.0 PR for

  • Module description, design rationale, tier descriptions, configuration
    reference.
  • Demo evidence (runboat preview install, smoke envelopes, query
    patterns).
  • Non-mechanical adaptations worth flagging (OWL boundary capture,
    public config endpoint, replay opt-out, surface tag, bundle
    selection, vendored SDK).

@dnplkndll dnplkndll force-pushed the 19.0-add-sentry_client branch 6 times, most recently from 762af18 to abcc1b6 Compare May 21, 2026 16:37
@dnplkndll dnplkndll changed the title [19.0][ADD] sentry_client: browser SDK with tiered opt-in for tracing/replay [19.0][ADD] sentry_client: tiered browser SDK with vendoring, profiling, replay opt-out, OWL boundary May 21, 2026
@dnplkndll dnplkndll force-pushed the 19.0-add-sentry_client branch 5 times, most recently from fad4ab7 to 498fed8 Compare May 25, 2026 19:00
dnplkndll added a commit to ledoent/server-tools that referenced this pull request May 25, 2026
…nfig

Backport of the 19.0 module (OCA#3622) to 18.0. Identical
feature set; only the API surfaces that changed between series are
adapted:

- `user.all_group_ids` (19.0) → `user.groups_id` (18.0). 19.0 split the
  groups field into a stored direct collection plus a computed
  transitive closure; on 18.0 `groups_id` already returns the full set.
- `group.privilege_id.category_id` (19.0) → `group.category_id` (18.0).
  19.0 introduced the privilege layer between groups and categories;
  on 18.0 groups carry the category directly.
- Manifest version `18.0.1.0.0`.

Everything else — Connection UI block (Browser DSN / Environment /
Release) with odoo.conf [sentry] fallback, four tier toggles with
sample-rate knobs, vendored Sentry SDK under static/lib, OWL
ErrorBoundary capturing the wrapping error and dedup-marking it,
per-tab UUID + workflow_id tags, per-user replay opt-out, and the
`surface` tag (backend|portal|frontend) for cross-surface filtering in
a shared sentry.io project — ports verbatim. The OWL `error_handlers`
registry, settings `<block>`/`<setting>` pattern, and asset bundle keys
are identical between 18.0 and 19.0.
@dnplkndll dnplkndll marked this pull request as ready for review May 25, 2026 19:51
dnplkndll added a commit to ledoent/server-tools that referenced this pull request May 25, 2026
…nfig

Backport of the 19.0 module (OCA#3622) to 18.0. Identical
feature set; only the API surfaces that changed between series are
adapted:

- `user.all_group_ids` (19.0) → `user.groups_id` (18.0). 19.0 split the
  groups field into a stored direct collection plus a computed
  transitive closure; on 18.0 `groups_id` already returns the full set.
- `group.privilege_id.category_id` (19.0) → `group.category_id` (18.0).
  19.0 introduced the privilege layer between groups and categories;
  on 18.0 groups carry the category directly.
- Manifest version `18.0.1.0.0`.

Everything else — Connection UI block (Browser DSN / Environment /
Release) with odoo.conf [sentry] fallback, four tier toggles with
sample-rate knobs, vendored Sentry SDK under static/lib, OWL
ErrorBoundary capturing the wrapping error and dedup-marking it,
per-tab UUID + workflow_id tags, per-user replay opt-out, and the
`surface` tag (backend|portal|frontend) for cross-surface filtering in
a shared sentry.io project — ports verbatim. The OWL `error_handlers`
registry, settings `<block>`/`<setting>` pattern, and asset bundle keys
are identical between 18.0 and 19.0.
@dnplkndll dnplkndll force-pushed the 19.0-add-sentry_client branch from 498fed8 to 9dc1ea5 Compare May 25, 2026 20:07
@dnplkndll dnplkndll changed the title [19.0][ADD] sentry_client: tiered browser SDK with vendoring, profiling, replay opt-out, OWL boundary [19.0][MIG] sentry_client: Migration to 19.0 May 25, 2026
@dnplkndll dnplkndll marked this pull request as draft May 25, 2026 20:08
dnplkndll added a commit to ledoent/server-tools that referenced this pull request May 25, 2026
…nfig

Backport of the 19.0 module (OCA#3622) to 18.0. Identical
feature set; only the API surfaces that changed between series are
adapted:

- `user.all_group_ids` (19.0) → `user.groups_id` (18.0). 19.0 split the
  groups field into a stored direct collection plus a computed
  transitive closure; on 18.0 `groups_id` already returns the full set.
- `group.privilege_id.category_id` (19.0) → `group.category_id` (18.0).
  19.0 introduced the privilege layer between groups and categories;
  on 18.0 groups carry the category directly.
- Manifest version `18.0.1.0.0`.

Everything else — Connection UI block (Browser DSN / Environment /
Release) with `odoo.conf [sentry]` fallback, four tier toggles with
sample-rate knobs, vendored Sentry SDK under `static/lib`, OWL
ErrorBoundary capturing the wrapping error and dedup-marking it,
per-tab UUID + `workflow_id` + `surface` tags, per-user replay opt-out,
and the public `/sentry_client/config.json` endpoint — ports verbatim.

The OWL `error_handlers` registry, settings `<block>`/`<setting>`
pattern, and asset bundle keys are identical between 18.0 and 19.0.
dnplkndll added 2 commits May 25, 2026 16:18
…nfig

Backport of the 19.0 module (OCA#3622) to 18.0. Identical
feature set; only the API surfaces that changed between series are
adapted:

- `user.all_group_ids` (19.0) → `user.groups_id` (18.0). 19.0 split the
  groups field into a stored direct collection plus a computed
  transitive closure; on 18.0 `groups_id` already returns the full set.
- `group.privilege_id.category_id` (19.0) → `group.category_id` (18.0).
  19.0 introduced the privilege layer between groups and categories;
  on 18.0 groups carry the category directly.
- Manifest version `18.0.1.0.0`.

Everything else — Connection UI block (Browser DSN / Environment /
Release) with `odoo.conf [sentry]` fallback, four tier toggles with
sample-rate knobs, vendored Sentry SDK under `static/lib`, OWL
ErrorBoundary capturing the wrapping error and dedup-marking it,
per-tab UUID + `workflow_id` + `surface` tags, per-user replay opt-out,
and the public `/sentry_client/config.json` endpoint — ports verbatim.

The OWL `error_handlers` registry, settings `<block>`/`<setting>`
pattern, and asset bundle keys are identical between 18.0 and 19.0.
Cherry-pick of the 18.0 [ADD] commit on top of 19.0 base, plus the
three API adaptations 19.0 introduced:

- `user.groups_id` → `user.all_group_ids`. 19.0 split the groups field
  into a stored direct collection (`groups_id`) plus a computed
  transitive closure (`all_group_ids`); we want the closure so role
  tags include inherited groups.
- `group.category_id` → `group.privilege_id.category_id`. 19.0
  introduced the privilege layer between groups and categories.
- Manifest version `18.0.1.0.0` → `19.0.1.0.0`.

Everything else — Connection UI block, four tier toggles with
sample-rate knobs, vendored Sentry SDK under `static/lib`, OWL
ErrorBoundary capturing the wrapping error and dedup-marking it,
per-tab UUID + `workflow_id` + `surface` tags, per-user replay opt-out,
the public `/sentry_client/config.json` endpoint, the systray feedback
launcher, the three split Tier-3 settings cards — ports verbatim.

The OWL `error_handlers` registry, settings `<block>`/`<setting>`
pattern, asset bundle keys (`web.assets_backend`,
`web.assets_frontend`), `@web/core/registry` imports, `_t` translation
idiom, and `Component` from `@odoo/owl` are all identical between 18.0
and 19.0.
@dnplkndll dnplkndll force-pushed the 19.0-add-sentry_client branch from 9dc1ea5 to 80a8d6f Compare May 25, 2026 20:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants