Commit Graph
23 Commits
Author SHA1 Message Date
gitlawrandjialin 2889ba7c78 feat: plugin extension slots for access, request interceptors, Users actions, and form fields
Four purely-additive seams that let build-time tooling extend host
behaviour without forking files:

* `src/access.extensions.ts` — identity `applyAccessExtensions`
  (mirrors `config/routes.extensions.ts`). `src/access.ts` runs the
  resolved predicate object through it. Adds two new predicates,
  `canSeeOrgAdmin` and `canManageCurrentOrg`, alongside the existing
  `canSeeAdmin`. Resources, Models children, Cluster Management, and
  Resources/Backends are retagged from `canSeeAdmin` to
  `canSeeOrgAdmin`. Users and Dashboard stay strict.
* `src/request.extensions.ts` — identity-empty
  `extraRequestInterceptors`. `src/request-config.tsx` spreads it
  into the existing `requestInterceptors` list so extensions can
  inject context-aware headers without forking the request config.
* Users page action column — renders
  `getGPUStackPlugin()?.components?.UserRowActions` next to the
  existing DropdownButtons inside a Space when a plugin component
  is registered. If absent, the cell renders exactly as before.
* `src/components/plugin-extra-fields.tsx` — generic component-slot
  helper. Renders `pluginManager.components.<name>` if registered,
  forwarding a `context` payload. Used by create/edit forms to let
  plugins inject extra `Form.Item` fields. Mounted in the relevant
  create forms — API Keys, Cloud Credentials, Clusters, Model
  Routes, Model Providers, and Inference Backends — under the slot
  name `CreateOrgScopeField`. Resources whose org is implicit from a
  parent (Models / Workers / Benchmarks / Worker Pools / Model Files
  inherit from the chosen Cluster) deliberately don't mount the slot.
2026-05-08 18:29:52 +08:00
jialinandjialin c68f546be9 fix: apikey filters 2026-04-29 18:09:55 +08:00
jialinandjialin 597a86562a fix: rebase main 2026-04-24 14:28:30 +08:00
jialinandjialin 48b357b1c6 chore: update hooks import 2026-04-24 14:28:30 +08:00
jialinandjialin 8711c27b78 chore: replace components with core-ui, upgrade eslint 2026-04-24 14:28:30 +08:00
jialinandjialin 684c1ab600 fix: apikey model access 2026-04-16 15:03:59 +08:00
jialinandjialin 46b9855c87 fix: custom apikey 2026-04-14 20:42:01 +08:00
jialinandjialin f04b5cdc27 feat: custom api key 2026-04-09 21:27:50 +08:00
jialinandjialin 9840a48301 fix: depercated props 2026-03-19 12:28:18 +08:00
jialin e66de732ac fix: copy button do not work 2026-02-11 15:30:35 +08:00
jialin 2ba94f7524 fix: miss model file path in cloning 2026-02-11 11:05:43 +08:00
jialin 17de9d98f4 chore(deps): upgrade antd to v6 2026-01-06 17:21:32 +08:00
jialin 7a0ee6aac4 style: column wrapper srollable style 2025-12-13 19:47:48 +08:00
jialin d8452e98f5 style: drawer styles 2025-12-10 15:50:53 +08:00
jialin 79442a6a6c fix: apikey form value diff 2025-11-21 20:41:20 +08:00
jialin f49001b742 chore: access setting notes 2025-11-21 20:10:21 +08:00
jialin fdb6ac7575 fix: set page to -1 for all data 2025-11-07 16:54:33 +08:00
jialin bf57290197 fix: admin can not delete own 2025-10-23 17:09:30 +08:00
jialin d3f39ae06b fix: my models 2025-10-13 15:21:17 +08:00
jialin f42f159785 chore: update locales 2025-10-13 15:21:17 +08:00
jialin bb7c8e9c85 chore: model access statement 2025-10-13 15:21:17 +08:00
jialin 663b6c7b4e style: allowed models ux 2025-10-13 15:21:17 +08:00
jialin 1fa2124efd feat: add allowed models 2025-10-13 15:21:17 +08:00