-
Notifications
You must be signed in to change notification settings - Fork 0
feat(web): SavedFilter model, uninstall purge, and OSearch favorites #263
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
28 commits
Select commit
Hold shift + click to select a range
d0a0272
feat(web): add SavedFilter model, uninstall purge, and OSearch favorites
buke 4d0e41e
refactor(web): move SavedFilter field validation onto @Constraint
buke a457d7d
feat(modules): wire web shell planning, depends, and SavedFilter auth…
buke 80c8058
fix(web): address SavedFilter PR review security and UX gaps
buke 7cd60a4
fix(lifecycle): finish EnsureOrder modules and preserve constraint st…
buke d83f1a7
fix(web): seed SavedFilter method/field ACL and harden favorites UX
buke a87f1c4
fix(test): rebuild choysumtest request context before each case
buke 96dbaf0
fix(core): prefer status-bearing validation issues and stop after Cho…
buke a6d4917
test(coverage): cover SavedFilter patch gaps across Go and web
buke f76aec1
fix(web): address cubic review on SavedFilter authz and shell races
buke 1204aee
fix(test): harden review-flagged flaky and vacuous coverage
buke 581a38a
fix(test): align SF11 expectCode hint with record-rule violation message
buke 7657f53
fix(test): address DeepSource unused params and builtin shadowing
buke 195e805
fix(test): blank unused planner peek name parameters
buke e08dd5a
test(coverage): close remaining SavedFilter patch gaps to 100%
buke 2803869
test(coverage): close SavedFilter web patch gaps to 100%
buke 3288179
test(coverage): close remaining SavedFilter patch partials
buke b450741
test(coverage): hit final SavedFilter patch partials
buke 1fd8272
fix(test): address CodeRabbit and DeepSource review nits
buke 77ee102
fix(test): blank unused skipWebShellPeekOrigin receivers
buke 8a90d94
refactor(web): dial meta.MetaModel with typed createServiceByModel
buke e7e692a
refactor(web): inline SavedFilter actor id from BaseModel.userId
buke 9f75ce5
refactor(meta): drop LookupEffective multi-row pick on read path
buke c67e491
fix(auth): keep company-switch drafts across open-panel token refresh
buke 17b7377
feat(web): scope SavedFilter uniqueness by route ScopeKey
buke 0873a35
test(coverage): close SavedFilter ScopeKey and auth patch gaps
buke 6b2e3fb
test(coverage): hit remaining ScopeKey and favorite-name branches
buke 386a402
test(coverage): hit SavedFilter clearDefaults empty actor branch
buke File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| --- | ||
| description: Ownership rules for module bootstrap/demo data seeds (xml_id, cross-app RR) | ||
| globs: modules/**/data/**/*.json,modules/**/demo/**/*.json,modules/**/package.json | ||
| alwaysApply: false | ||
| --- | ||
|
|
||
| # Module Data Seed Ownership | ||
|
|
||
| When adding or moving records in `modules/*/data/*.json` or `modules/*/demo/*.json`: | ||
|
|
||
| 1. **Master / business rows** belong in the module that owns the model (e.g. `base.Company` → `modules/base/data`). | ||
| 2. **Domain-targeted authz** (`RoleRecordRule` / `RoleFieldRule` / `RoleMethodAccess` scoped to a **domain model** via `MetaModelId` / `modelRef`, or a **domain-owned** logical name) belongs in that **domain module**. Use `application: "auth"`; `module` / xml_id stay under the applying module (example: `web/data/bootstrap.json` → `web.rrr_…` for `web.SavedFilter`). | ||
| 3. **Platform roles, global break-glass, and platform LogicalModel default packs** stay in `modules/auth/data`: `base.user` / `sys.admin` / terminology role, global RR/FR/RMA/RUI, auth User/Token/Session packs, and cross-app logical defaults for `FieldDefault` / `AppSetting` / `TranslationTerm` (same registry as core’s `registerLogicalModelName`). | ||
| 4. Rule (2) requires the seeding module to install **after** auth: it must `depends` on `auth`, and `auth` must **not** depend on it. Modules that auth already depends on (`base`, `meta`) cannot own authz seeds without a cycle — leave those app-level gift packs in auth (or use a future late-apply mechanism). | ||
| 5. **Do not** pile new **domain-model** RR/RFR/RMA into `auth/data`. Prefer the SavedFilter pattern under the domain module’s `data/bootstrap.json`. Platform logical defaults (rule 3) are the exception and belong in auth. | ||
|
|
||
| Do **not** add `web` to domain `depends`. The install/upgrade planner auto-includes the web SPA shell when a module declares `entryPoints.web` (opt out with CLI `--no-web`). | ||
|
|
||
| ## Shape reminders | ||
|
|
||
| - `record.module` must equal the applying module (or be omitted). | ||
| - `record.application` may target another app’s model (cross-app seeding); omit to default to the owner app. | ||
| - `record.model` is the **short** name only (not `app.Model`). | ||
| - Prefer `modelRef` / `ref` / `refBy` for stable links; do not hardcode row ids. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.