[Feature Request] gem4gov: add a license-assignment command (batchUpdateUserLicenses)
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 58/100
Línea de trabajo
Empieza en gem4gov.py localizando el grupo existente gem4gov license y el comando distribute, y compáralos con la solicitud batchUpdateUserLicenses de v1 documentada en el issue. Implementa el comportamiento solicitado de asignación, desasignación y conciliación usando el endpoint y la estructura de payload indicados. Se considera terminado cuando los comandos admiten los flujos de trabajo de asignación y eliminación descritos y producen solicitudes CLI auditables.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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).
- Lenguaje dominante
- HCL
- Estrellas
- 51
- Forks
- 21
- Merge medio
- 1 d 17 h
- PR fusionados (30 d)
- 29
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de google/stellar-engine
-
documentation Level of Effort - High Priority - Medium
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
google/stellar-engine#232 ·
Los mantenedores suelen responder en 2 días
-
Bug Gemini - Government Level of Effort - Low Priority - Low
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
google/stellar-engine#135 ·
Los mantenedores suelen responder en 2 días
-
[Feature Request] gem4gov: implement BigQuery import in the standalone datastore import commandAbiertoEnhancement Gemini - Government Level of Effort - Medium Priority - Medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
google/stellar-engine#122 ·
Los mantenedores suelen responder en 2 días
-
documentation Level of Effort - Medium Priority - Medium
Dificultad 2/5 Medio día Aptitud para principiantes 72/100
google/stellar-engine#117 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
[Feature Request] No research blueprint family — the README names universities as a target audience, every blueprint is FedRAMP High, FedRAMP Moderate or IL5Posiblemente ocupada @Calvin-Cheng1 la tomó hace 20 días. Abiertoenhancement
google/stellar-engine#239 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 2 días
Todos los issues de google/stellar-engine
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
decentralized-identity/didwebvh-ts#203 ·
Los mantenedores suelen responder en 1 día
-
kind/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
area/map-site bug layer/core size/S
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
marola-dev/marola-app#60 ·
Los mantenedores suelen responder en 1 día
-
Telegram webhook: line breaks lost since switch to rich messagesPosiblemente ocupada @Kshot3000 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
get_seat_availability: 'GNWL/AVAILABLE'-style statuses are reported as available with no seat countAbiertobug good first issue tools
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100