Gemini Code Assist
Gemini Code Assist is Google’s paid enterprise IDE plugin (VS Code, JetBrains, Android Studio, Cloud Shell, Cloud Workstations). Unlike Gemini CLI, it does not expose a native OpenTelemetry exporter or a managed-settings file. Governance is server-side, at the cloudaicompanion.googleapis.com API layer — Cloud Audit Logs for metadata, Configurable Gemini Code Assist logging for prompt+response content, and VPC Service Controls for perimeter enforcement.
When to use this
Use this page if your fleet uses Gemini Code Assist Standard or Enterprise. Both tiers share the same governance surfaces; Enterprise adds private-repo code customization via a Code Repository Index. Coverage across the four pillars is scored on the Connectors page.
3-step Quickstart
- Enable
cloudaicompanion.googleapis.comon your Google Cloud project and assign licenses via Cloud Console → Admin for Gemini. - Enable Cloud Audit Logs Data Access for
cloudaicompanion.googleapis.com(off by default) and turn on Configurable Gemini Code Assist logging into a dedicated Cloud Logging bucket. - Create a Cloud Logging sink from that bucket to the Arrakis ingest (BigQuery export or Pub/Sub → OTLP shim), configured from the tenant-specific values in the Arrakis platform.
Where tenant-specific values come from
Sign in to the Arrakis platform → Settings → Integrations → Deployment. The Cloud Logging sink destination, ingestion role, and any Pub/Sub / OTLP shim configuration for your tenant live there.
Reference: full configuration walkthrough
Editions
| Feature | Standard | Enterprise |
|---|---|---|
| Code completion, chat, agentic chat | Yes | Yes |
| Multi-IDE support (VS Code, JetBrains, Android Studio, Cloud Shell/Workstations) | Yes | Yes |
| Local codebase awareness | Yes | Yes |
| IP indemnification | Yes | Yes |
| VPC Service Controls | Yes | Yes |
| Private-repo code customization (Code Repository Index over GitHub/GitLab/Bitbucket) | No | Yes |
| Apigee, Application Integration, Gemini Cloud Assist integrations | No | Yes |
Governance surfaces are identical across tiers.
Enable the service and grant roles
- Cloud Console → Marketplace → enable
cloudaicompanion.googleapis.com. - Cloud Console → Admin for Gemini (
console.cloud.google.com/gemini-admin) → purchase and assign licenses. - IAM grants for end users:
roles/cloudaicompanion.user+roles/serviceusage.serviceUsageConsumer. For auto-assignment on first use, grantcloudaicompanion.licenses.selfAssign. - Admin roles:
roles/billing.adminorroles/consumerprocurement.orderAdminfor purchase; standard IAM admin for license management. - Optional custom-role permissions of interest:
cloudaicompanion.companions.generateChat/generateCode,cloudaicompanion.instances.completeCode/generateCode/exportMetrics.
Runtime audit logging
Cloud Audit Logs under service cloudaicompanion.googleapis.com:
| Log kind | Coverage | Enabled by default |
|---|---|---|
| Admin Activity | Repo-index / repo-group CRUD (CreateCodeRepositoryIndex, etc.) | Yes |
| Data Access | CompleteCode, GenerateCode, GenerateText, CompleteTask, chat EnumerateMessages/CreateTopic/UpdateTopic | No — enable explicitly |
| System Event | Google-initiated changes | Yes |
| Policy Denied | Denied requests (e.g. VPC-SC blocks) | Yes |
Data Access logs give per-user, per-method metadata (principal, timestamp, method, resource) but not prompt / response bodies. Enable via standard Cloud Logging Data access audit logs configuration on the log router.
Prompt-and-response capture — Configurable Code Assist logging
Google’s Security/Privacy page states Code Assist is stateless by default but offers optional logging of user input and responses to a Cloud Logging bucket. This is the closest analogue to Cursor’s admin dashboard export and is the only path for prompt/response fidelity in a Code Assist deployment.
Enable this from the Admin for Gemini page for your subscription. Route the resulting log entries through a sink to Arrakis:
- Sink source: your Configurable Code Assist logging bucket.
- Sink destination: BigQuery dataset (recommended for retention and JOIN with Data Access logs) or a Pub/Sub topic that a small OTLP shim converts to Arrakis coding-telemetry.
- Grant the sink’s writer identity
bigquery.dataEditoron the BigQuery dataset (orpubsub.publisheron the topic).
Arrakis reads from the sink destination — either via Data Warehouse Pull (BigQuery) or an OTLP push (Pub/Sub → OTLP shim). The exact shim configuration is provisioned per-tenant.
Preventive controls
- VPC Service Controls. Add both
geminicloudassist.googleapis.comandcloudaicompanion.googleapis.comto the perimeter. Add ingress rules for developer identities. - User Domain Restriction. Enforce at the Org policy layer to prevent OAuth sign-in from non-owned domains.
.aiexcludefiles. Repo-scoped file filter that removes files/paths from Code Assist context. Client-side, committed to the repo.- CMEK. Supported for the code-customization data plane.
- IP indemnification. Google’s Gemini indemnification covers Code Assist output.
- Recitation / citation filter. Long-form quotations from open-source cite the source; users can suppress citation matches from IDE settings. Not a preventive control per se — a licensing safety net.
Not first-class on Code Assist as of this writing: Vertex AI safety filters, Model Armor, and Sensitive Data Protection (DLP) integration. Code Assist does not run on the customer’s Vertex endpoint, so those Vertex-side controls don’t automatically apply. Customers who require DLP scanning of coding-assistant traffic need to attach it at the Cloud Logging sink layer (Arrakis-side DLP on the ingested content) rather than in the client path.
Endpoint-side reality check
Code Assist is delivered as an IDE plugin — VS Code Marketplace, JetBrains Marketplace, or bundled with Cloud Shell / Cloud Workstations. There is no native OpenTelemetry exporter and no documented managed-settings schema analogous to Claude Code or Gemini CLI. Client-side controls that exist:
.aiexclude— repo-scoped file filter.- IDE settings for citation-match suppression.
- IDE / IdE Marketplace policy: JetBrains supports pushed IDE settings and project settings; VS Code supports enterprise settings via
--user-data-dirand workspace trust. Google does not publish a managed-settings schema for the plugin itself — these are IDE-layer controls, not Code-Assist-specific.
Arrakis integration path
- Metadata: Cloud Audit Log sink (Admin Activity + Data Access) → Arrakis ingest.
- Content: Configurable Code Assist logging → BigQuery or Pub/Sub → Arrakis ingest.
- Perimeter: VPC-SC + User Domain Restriction enforced on the customer’s Google Cloud project; no Arrakis action required beyond documenting the configuration.
All paths terminate at the same Arrakis coding-telemetry ingest as native-OTel sources.
Egress verification
For Cloud Logging sink destinations, verify the sink writer identity has permission on the destination and that a sample event flows end-to-end. For Pub/Sub-based paths, verify the OTLP shim is emitting to the tenant OTLP endpoint using the shared probe in OTel Collector & Arrakis Endpoint → Verifying connectivity.