-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
DB Integration & Observability
-
Fully Compatible
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Overview
Split the extension privilege declaration types out of the aggregation-stage static-properties IDL into a shared public IDL, so that extension aggregation stages and extension commands use the same types. Add the search index management actions to the closed action enum.
Part of SPM-4830 (Support Commands in the Extensions API).
Scope of Work
- New shared public IDL (src/mongo/db/extension/public/extension_privilege.idl) containing the resource pattern, the closed action enum, the action entry, and the required-privilege struct, moved out of extension_agg_stage_static_properties.idl.
- Append createSearchIndexes, updateSearchIndex, and dropSearchIndex to the action enum (append-only), and map each to its server ActionType.
Acceptance Criteria
- Existing agg-stage privilege declarations behave exactly as before.
- The new actions map to the correct {{ActionType}}s.
Example Test Cases
- Unit tests for each action mapping.
- An agg-stage declaration without a resource pattern is still rejected.
- Existing extension agg-stage auth tests are unchanged.
Technical Notes
- resourcePattern stays required, so declarations remain parseable by older servers.
- The IDL is a BSON contract, not a vtable, so it is independent of the API versioning work (
SERVER-135392).
Depends on: none
- is depended on by
-
SERVER-137295 Add static properties IDL for extension commands
-
- Open
-