[Feature Request] gem4gov: add a license-assignment command (batchUpdateUserLicenses)
Maintainers usually reply within 2 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 58/100
Research direction
Start in gem4gov.py by locating the existing gem4gov license group and distribute command, then compare them with the documented v1 batchUpdateUserLicenses request in the issue. Implement the requested assign, unassign, and reconcile behavior using the stated endpoint and payload shape. Done means the commands support the described assignment and removal workflows and produce auditable CLI requests.
Written by the indexing model from the issue text.
Description
Feature Description
The gem4gov license group wraps distributeLicenseConfig (distribute) and lists configs (list), but has no user-assignment command. Add gem4gov license assign (plus unassign/reconcile) wrapping the public Discovery Engine batchUpdateUserLicenses REST method, mirroring the existing distribute command's structure.
Use Case
Assigning a license to an individual user currently requires the Gemini Enterprise console "Manage users" page or a manually created REST call (grep -n batchUpdateUserLicenses gem4gov.py → no matches). A CLI command makes assignment scriptable, idempotent, and auditable — producing cleaner audit evidence for license oversight.
Proposed Solution
Add gem4gov license assign wrapping the documented API. Verified schema (Google's public "Get subscriptions and assign licenses" docs):
POST https://{us|eu|}discoveryengine.googleapis.com/v1/projects/{PROJECT_ID}/locations/{LOCATION}/userStores/default_user_store:batchUpdateUserLicenses
body { inlineSource: { userLicenses: [{ userPrincipal, licenseConfig }], updateMask: { paths: ["userPrincipal","licenseConfig"] } }, deleteUnassignedUserLicenses: bool }.
Note: v1 (not v1alpha), default_user_store, licenseConfig is the project-level config path. Unassign = omit licenseConfig + deleteUnassignedUserLicenses: true.
Compliance & Deployment Context
- Target Deployment Type(s):
- US Region Restricted (e.g., Access Policy constraint)
- FedRAMP Medium
- FedRAMP High
- DoD IL4
- DoD IL5
- All / General
- Relevant NIST 800-53r5 Controls: AC-2 (account management) — auditable, repeatable license assignment.
Reusability Check
Stellar Engine prioritizes reusability.
- I have checked if this functionality can be achieved by extending an existing module or blueprint. (Extends the existing
licensegroup; no wrapper exists anywhere in the repo.) - I have verified that this does not duplicate existing functionality. (Checked all 61 open/closed issues; #100 proposes converting the CLI to Terraform — if that lands, this ask translates to the TF implementation.)
Alternatives Considered
Console clicks (not scriptable/auditable at scale); hand-rolled REST calls (works, but every operator reinvents the request shape).
Additional Context
Verified at main @ 3728fc98. Related: #100 (CLI→Terraform conversion).
- Dominant language
- HCL
- Stars
- 51
- Forks
- 21
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 30
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from google/stellar-engine
-
documentation Level of Effort - High Priority - Medium
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
google/stellar-engine#232 ·
Maintainers usually reply within 2 days
-
Bug Gemini - Government Level of Effort - Low Priority - Low
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
google/stellar-engine#135 ·
Maintainers usually reply within 2 days
-
[Feature Request] gem4gov: implement BigQuery import in the standalone datastore import commandOpenEnhancement Gemini - Government Level of Effort - Medium Priority - Medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
google/stellar-engine#122 ·
Maintainers usually reply within 2 days
-
documentation Level of Effort - Medium Priority - Medium
Difficulty 2/5 Half a day Newbie friendliness 72/100
google/stellar-engine#117 · 1 comment ·
Maintainers usually reply within 2 days
-
[Feature Request] No research blueprint family — the README names universities as a target audience, every blueprint is FedRAMP High, FedRAMP Moderate or IL5Possibly taken @Calvin-Cheng1 claimed this 20 days ago. Openenhancement
google/stellar-engine#239 · 2 comments · 1 assignee ·
Maintainers usually reply within 2 days
All issues in google/stellar-engine
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
FuRongJun-1999/dsh-memory#65 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
hexlet-codebattle/codebattle#2361 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Qiskit/qiskit-aer#2466 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day