> For the complete documentation index, see [llms.txt](https://docs.p0.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.p0.dev/change-logs/p0-controller/2026.md).

# 2026

This page has all the current & past feature, updates and changes to the p0 app for 2026.

## October 2026

### New Features

#### Integrations

* **Argo CD (Beta).** Give people just-in-time roles in your [Argo CD](https://argo-cd.readthedocs.io) instances. A person requests a role on a whole instance, such as `role:readonly`, with `p0 request argocd global-role <role>`, or a role that one project defines with `p0 request argocd project-role <project> <role>`, or from Slack or the web app. P0 gives their SSO user the role for the approved duration, then takes it away. P0 acts through an Argo CD account you add in Git and a connector you deploy on AWS Lambda or Google Cloud Run, so the account's API token stays in your own secret manager. See [Argo CD](/integrations/resource-integrations/argocd.md). This integration is in beta.
* **1Password (Beta).** Give people time-limited access to one item in a 1Password vault. A person requests an item with `p0 request 1password item <account> <vault> <item>` or from Slack or the web app. Once the request is approved, P0 makes a read-only share link to the item that opens only for the requestor's email, and that expires after the approved time, rounded to one of 1Password's link durations. P0 acts through a 1Password service account for each 1Password account, with access to the vaults people may request items from, and a connector you deploy on AWS Lambda or Google Cloud Run, so the service account token stays in your own AWS Secrets Manager or Google Secret Manager. See [1Password](/integrations/resource-integrations/1password.md). This integration is in beta.
* **GitHub Repositories (Beta).** Grant members of your GitHub organization just-in-time roles on individual repositories, instead of only through team membership. A member requests a role on one repository, such as Write or Maintain, with `p0 request github-repositories role <repository> <role>` or from Slack or the web app. P0 makes them a direct collaborator for the approved duration, then puts back the direct role they had before. P0 acts through a GitHub App you create and install, and a connector you deploy on AWS Lambda, so the app's private key stays in your own AWS Secrets Manager. See [GitHub Repositories](/integrations/resource-integrations/github-repositories.md). This integration is in beta.
* **Docker Hub (Beta).** Grant just-in-time member, editor or owner roles in your Docker Hub organizations. A person requests a role with `p0 request docker role <organization> <role>` or from Slack or the web app. P0 changes the role of someone already in the organization for the approved duration, then puts back the role they had before. Someone who isn't in the organization gets an invite, and loses the invite or their membership when access ends. P0 acts through a connector you deploy on AWS Lambda or Google Cloud Run, so the organization access token stays in your own AWS Secrets Manager or Google Secret Manager. See [Docker Hub](https://docs.p0.dev/integrations/resource-integrations/docker). This integration is in beta. Contact P0 to enable it.
* **Harbor (Beta).** Give people just-in-time roles on the projects of your [Harbor](https://goharbor.io) instances. A person requests a role on one project, such as Developer or Maintainer, with `p0 request harbor project-role <instance> <project> <role>` or from Slack or the web app. P0 makes their existing Harbor user a direct member of the project for the approved duration, then puts back the lower role they had before or removes the membership. P0 acts through a dedicated Harbor admin account from your identity provider and a connector you deploy on AWS Lambda or Google Cloud Run, so the account's credential stays in your own secret manager. Harbor must sign people in with OIDC. See [Harbor](/integrations/resource-integrations/harbor.md). This integration is in beta.
* **Harbor System Administrator Access (Beta).** Give people Harbor's system administrator access on one instance for a bounded time, with `p0 request harbor system-admin <instance>` or from Slack or the web app. P0 refuses someone who is already a system administrator, and clears the administrator flag when access ends. Every Harbor instance offers it: P0 changes the flag as the instance's admin account, which patched Harbor requires. See [System administrator access](/integrations/resource-integrations/harbor.md#system-administrator-access). This access is in beta.
* **SaaS MCP servers (Beta).** Give AI agents OAuth-authenticated, policy-scoped access to popular SaaS tools through the [P0 AI Gateway](/readme/agentic-control-plane.md), instead of distributing a vendor token to each agent. P0 now ships predefined MCP servers for tools such as Atlassian, Notion, Linear, Stripe, and PayPal. Choose **OAuth** as the credential source and **P0** as the definition, then pick the server. The OAuth credential source is in preview. Each user signs in with OAuth on first use, and calls run through the gateway under your access policy. See [SaaS MCP servers](/agentic-access/agentic-gateway/mcp-server/saas.md).
* **Google Drive MCP server (Beta).** Grant an AI agent scoped access to a single Google Drive folder or file, instead of sharing a drive broadly or handing over a long-lived service-account key. Through the [P0 AI Gateway](/readme/agentic-control-plane.md), P0 grants the agent `reader` or `writer` access to only the folder or file you choose. This integration is in beta. Contact P0 to enable it. See [Google Drive MCP server](/agentic-access/agentic-gateway/mcp-server/google-drive.md).
* **PostgreSQL on AWS RDS MCP server (Preview).** Let an AI agent run SQL against an Amazon RDS for PostgreSQL database through the [P0 AI Gateway](/readme/agentic-control-plane.md) without holding database credentials. The agent requests a scoped Postgres role on an RDS instance, and the gateway connects with short-lived RDS IAM credentials for the session. This server is in preview.
* **Agentic tool-call risk scoring.** See the risk of each agent action at a glance. The [Agentic Access Event Log](/agentic-access/using-the-gateway/event-log.md) now shows a **Risk** level (Critical, High, Medium, or Low) for a tool call. P0 derives the level from the tool's own annotations and, for the GCP Storage, IAM, BigQuery, and Compute Engine MCP servers, grounds it in the actual IAM permission behind the call. A tool that reports itself as read-only can still score High if the permission behind it can read sensitive data.

### Enhancements

#### Integrations

* **AWS Secret Write Access.** When you request access to a single secret in AWS Secrets Manager, you can now choose read and write access, scoped to that secret's ARN, instead of read-only.
* **Cloud SQL Shell Install (Preview).** Install the Google Cloud SQL connector with a generated `gcloud` shell command as an alternative to Terraform, so teams that don't use Terraform can deploy it. See [Installing a Cloud SQL database](/integrations/resource-integrations/postgresql/installing-a-cloudsql-database.md). This option is in preview.

#### User Experience

* **Per-Rule Access Limits.** Set a maximum access duration on an individual approval rule in an access policy through the [Access policies API](/policy-studio/policy-studio/access-policies-api.md). P0 enforces it on every request, granting the smaller of the matching rule's limit and your organization's maximum. You no longer need to include a precomputed duration value. P0 derives it from the time and unit you set.
* **Agentic Access Event Log Opens First.** The [Event log](/agentic-access/using-the-gateway/event-log.md) tab now loads first, so you land on recent agent activity instead of the client list.
* **Clearer OAuth Install Errors.** A failed OAuth integration install, such as PagerDuty, Slack, Microsoft Teams, Google Workspace, or Microsoft Entra ID, now shows the provider's own error message, and an install that finishes in a different browser tab shows a retry message instead of appearing stuck.

## September 2026

### New Features

#### Integrations

* **P0-hosted AI Gateway Domain (Beta).** Stand up a self-hosted [P0 AI Gateway](/readme/agentic-control-plane.md) without configuring DNS by hand. When you install the [Gateway component](/agentic-access/agentic-gateway/gateway.md), you can now choose a P0-hosted domain: P0 assigns the gateway a unique hostname, and once you submit your load balancer address, P0 creates the matching DNS record in its own zone. If you run your own domain instead, the installer now generates a ready-to-apply Terraform snippet for the gateway deployment and tells you which DNS record type to create. This option is in beta.
* **GitHub MCP Server (Preview).** Give AI agents policy-scoped access to GitHub through the [P0 AI Gateway](/readme/agentic-control-plane.md), instead of handing them a personal access token. The predefined GitHub MCP server reads its token from a secret P0 provisions into your vault for each grant, and an agent requests access to a specific organization, repository, and permission level, for example `contents:read`. This server is in preview. Contact P0 to enable it.

### Enhancements

#### Integrations

* **AI Gateway Management Tunnel (Beta).** Register a self-hosted [P0 AI Gateway](/agentic-access/agentic-gateway/gateway.md) with P0 even when it has no public DNS record or TLS certificate. Every gateway deployment now runs an outbound-only tunnel client (`braekhus-client`); paste its public key into the console during install, and P0 routes configuration sync, entitlement, and activity-log calls, plus gateway JWKS verification, through the tunnel instead of requiring a direct connection. Registering the tunnel is required for all new gateway installs. Pre-existing installs keep working exactly as before. This capability is in beta.
* **VictoriaLogs Log Provider (Beta).** Read [P0 AI Gateway](/agentic-access/agentic-gateway.md) tool-call activity from a VictoriaLogs instance deployed alongside your gateway, as an alternative to Google Cloud Logging. Choose **VictoriaLogs (via gateway)** when you configure the [Log provider](/agentic-access/agentic-gateway/log-provider.md) component. It needs no separate credential: P0 authenticates with the service account it already uses to manage the gateway.
* **Tool and Annotation Access Control for Custom MCP Servers (Preview).** Gate a [custom MCP server](/agentic-access/agentic-gateway/mcp-server/custom.md) by MCP annotation (read-only, destructive, or neither) or by individual tool name, instead of requiring the upstream server to enforce access through its own IAM. This closes the gap for a custom server that has no IAM of its own to scope. Both access types are in preview.
* **Gateway Install Without a Storage Class (Preview).** Deploy the [Gateway](/agentic-access/agentic-gateway/gateway.md) component on a Kubernetes cluster with no dynamic storage provisioner, for a proof-of-concept install, instead of the form requiring a storage class name. Choosing this option turns off the gateway's bundled PostgreSQL and VictoriaLogs persistence. Naming a storage class still installs exactly as before. This option is in preview.
* **Gateway Name Validation.** The [Gateway](/agentic-access/agentic-gateway/gateway.md) install form now rejects a name Kubernetes will not accept as you type it, instead of letting the install look successful and then failing later when you apply the generated Terraform. A gateway name must use lowercase letters, digits, and hyphens, start and end with a letter or digit, and be at most 53 characters.
* **Identity Provider Replay Protection (Preview).** Choose how an [identity provider](/agentic-access/identity-provider.md) handles a repeated token: reject any repeat, allow every repeat, or allow a repeat within a grace period you set. The grace period option covers issuers that legitimately re-serve the same signed token, such as SPIRE or GCP service accounts.
* **Splunk Stack Cache Management.** The Splunk Stack integration installer now has a **Clear Cache** action for its cached resource lists, so you can force a refresh after deploying a new version of your Lambda handler instead of waiting up to 40 minutes for the cache to expire. P0 also stops caching an empty result from a misconfigured Lambda, so access requests recover as soon as the Lambda does.
* **Agentic Gateway Components Move to Beta.** The [P0 AI Gateway](/readme/agentic-control-plane.md), MCP server, A2A bridge, and Log provider components move from preview to beta, along with the P0-hosted domain option and the VictoriaLogs log provider. The Agentic Access page's status tag now reads **Beta** to match. MCP tool and tool-annotation access, the container hosting type for custom servers, the OAuth and vaulted credential sources, Google Cloud Logging as a log provider, and installing the gateway without a storage class remain in preview.

#### User Experience

* **Identity Provider Issuer Allowlist Warning (Preview).** The [Identity provider](/agentic-access/identity-provider.md) install flow now shows the exact Terraform line needed to add a configured issuer to your gateway's allowlist, and warns if an installed gateway doesn't have that issuer yet. Previously nothing told you this second step existed, so a newly configured identity provider could silently never authenticate any agent.
* **Gateway Prerequisite Warning.** The MCP server and A2A bridge install forms now disable the **Gateway** field and explain that a [Gateway](/agentic-access/agentic-gateway/gateway.md) component is required, instead of showing an empty dropdown with no explanation, when no gateway is installed.
* **Event Log Time Range and Empty States.** The [Event log](/agentic-access/using-the-gateway/event-log.md) tab now offers a **Last 7 days** or **Custom range** selector instead of a bare, easy-to-misread date picker, and tells apart an empty result from a missing log provider. Previously the two looked identical, so you couldn't tell whether there were no calls to show or nothing was configured to read them.
* **Org Duration Floor Validation.** P0 now blocks lowering an organization's maximum or standing access duration below any existing policy's duration, instead of accepting the change and leaving that policy unable to grant its own configured duration. The error names the policy and approval rule that needs to change first. See the [just-in-time settings API](/p0-management/management-api/just-in-time-settings-api.md).
* **Request Duration Capping.** Requesting a duration longer than your organization's maximum access duration no longer rejects the request outright. P0 caps it to the organization's maximum and creates the request instead. See the [just-in-time settings API](/p0-management/management-api/just-in-time-settings-api.md).

#### API & CLI

* **Bulk Revocation API.** Revoke many access requests in a single call — either every currently-active request for a principal or an explicit list of request IDs — instead of revoking them one at a time. The new endpoint is restricted to owners and API keys, supports a `dryRun` preview, and is capped at 1,000 request IDs per call. See the [Access requests API](/access-management/access-management/just-in-time-access/just-in-time-api/access-requests-api.md).
* **`p0 claude mcp add` Failure Reporting.** [`p0 claude mcp add`](/p0-cli/p0-commands-and-usage/p0-claude-mcp-add.md) now exits with an error when the underlying `claude mcp add` step fails, instead of reporting success and leaving you to find out later when the server fails to authenticate.
* **`--reason` in `p0 aws rds generate-db-auth-token`.** [`p0 aws rds generate-db-auth-token`](/p0-cli/p0-commands-and-usage/p0-aws-rds.md) now forwards `--reason` to the access request it creates. Organizations that require a reason for access previously had every RDS token request through this command rejected, since the flag was accepted but its value was never used.

## August 2026

### New Features

#### Integrations

* **Federated Agent Access Policies (Preview).** Write [agentic access policies](/policy-studio/policy-studio/agentic-access-policies.md) that match AI agents by their identity provider, instead of registering and naming every agent individually. A new Federated rule (`type: provider`) matches agents that authenticate to the [P0 AI Gateway](/readme/agentic-control-plane.md) by federating a token from an external provider, keyed on the provider ID and an optional subject pattern. Because federated agents act without a bound human user, the rule always pairs with "No user." This rule is in preview.
* **Automatic Agent Registration (Preview).** Enroll an external identity provider with the [P0 AI Gateway](/readme/agentic-control-plane.md) and let P0 register matching agents on their first connection, instead of pre-registering every agent client by hand. The [Identity provider](/agentic-access/identity-provider.md) integration's **Dynamic registration** toggle controls whether P0 registers an agent automatically when it first presents a valid token, or requires the agent identity to be registered in advance. Every accepted request is still authorized against your access policies. This integration is in preview.
* **GCP Compute Engine Resource-Scoped Access (Preview).** Grant an agent least-privilege access to a single Compute Engine VM instead of the whole project. The [Compute Engine MCP server](/agentic-access/agentic-gateway/mcp-server/gcp/compute.md) now supports resource-scoped access to one VM with a role such as `compute.instanceAdmin.v1`, alongside project-wide access with a role such as `compute.viewer` for tools that must span resources. This server is in preview.
* **Custom MCP Servers (Preview).** Put your own MCP server behind the [P0 AI Gateway](/readme/agentic-control-plane.md) when P0 doesn't ship a predefined server for it, so agents reach it through the same policy checks and short-lived credentials as P0's built-in servers. A [custom MCP server](/agentic-access/agentic-gateway/mcp-server/custom.md) can authenticate to its upstream with a gateway-minted native credential rather than user-delegated OAuth, and gate each call through an installed, requestable P0 integration. Custom servers also accept Google Cloud Workload Identity Federation credentials, and you can add custom JWT claims to the native credential with Liquid templates when an upstream needs extra claims such as scopes. This capability is in preview.

### Enhancements

#### User Experience

* **AI Agent Request Attribution.** Access requests initiated by an AI agent now show the agent's identity in the web UI, so approvers can see which agent, and which human on its behalf, a request came from. The request details page groups the agent, gateway client, and delegation fields into distinct sections and shows the request reason.
* **Agentic Activity Tab.** The [P0 AI Gateway](/agentic-access/agentic-gateway.md) Activity tab shows the caller beneath each gateway client ID, keeps the timestamp column fixed, and records a session ID for every agent tool call, so you can trace which agent identity performed which MCP action. You can also create a policy to block a specific MCP action directly from the activity log.
* **Agentic Access Policy Refinements (Preview).** [Agentic access policies](/policy-studio/policy-studio/agentic-access-policies.md) now evaluate agent rules against only the acting agent rather than the full delegation chain, so a rule matches based on the agent that actually makes the call. The `mcp-client` agent rule is now named `agent-client`. Existing policies that use `mcp-client` continue to work.
* **Policy Studio Installed Resources.** [Policy Studio](/policy-studio/policy-studio.md) now lists only the integrations you have installed when you build a policy, instead of every resource type P0 supports, so you no longer scroll past resources you cannot grant.

#### API & CLI

* **Revocation Attribution in Audit Logs.** The [`permission-requests.revoked`](/integrations/siem-integrations/audit-log-format.md) audit event now includes a `revocationDetails` object naming who revoked a request, so agents and requestors can see who ended their access. This distinguishes a *revoke* (another user ends the request) from a *relinquish* (the recipient ends their own), and covers revocations made through the web app, Slack, Microsoft Teams, and email.
* **Azure CLI SSH Extension Hint.** [`p0 ssh`](/p0-cli/p0-commands-and-usage/p0-ssh.md) to an Azure VM now surfaces an actionable hint when the Azure CLI `ssh` extension is missing, telling you to run `az extension add --name ssh`, instead of failing with the raw Azure CLI error that made the P0 CLI look broken.

## July 2026

### New Features

#### Integrations

* **Google Cloud SQL for PostgreSQL.** Manage just-in-time access to Google Cloud SQL for PostgreSQL databases, closing the gap for teams whose PostgreSQL runs on Google Cloud rather than Amazon RDS. P0 provisions a dedicated IAM database user for each identity and grants the requested role during access. This connection option is now available in the UI without a feature flag. See [Installing a Cloud SQL database](/integrations/resource-integrations/postgresql/installing-a-cloudsql-database.md).
* **Azure Custom Jump Host.** Reach Azure VMs for [SSH access](/integrations/resource-integrations/microsoft-azure/configure-bastion-host-integration/custom-jump-host.md) through your own existing jump host instead of Azure Bastion, so you can use P0 in environments that already standardize on a bastion VM. When you configure Azure SSH, you choose either an Azure Bastion or a jump host as the connection path, and the P0 CLI supports both.
* **Azure Jump Host Management (Beta).** Send privileged commands, such as terminating a live SSH session, to jump host VMs in your Azure tenant through a P0-managed connector. Configure the optional [Jump host management](/integrations/resource-integrations/microsoft-azure/jump-host-management.md) component with the app registration P0 authenticates as and the Azure Function App that dispatches commands. This component is in beta.
* **GCP MCP Servers (Preview).** Give AI agents policy-scoped, credential-free access to Google Cloud APIs through the [P0 AI Gateway](/readme/agentic-control-plane.md), instead of handing agents long-lived service-account keys. P0 ships one predefined [GCP MCP server](/agentic-access/agentic-gateway/mcp-server/gcp.md) per service—Compute Engine, Cloud Storage, BigQuery, Cloud Monitoring, and IAM—so you install only the ones your agents need. Each call is authorized per session against your P0 access policy, and the gateway mints a short-lived token using Workload Identity Federation rather than issuing standing credentials. These servers are in preview; contact P0 to enable them.
* **GCP Workload Identity Federation (Preview).** Let agents reach Google Cloud through the [P0 AI Gateway](/readme/agentic-control-plane.md) without any long-lived credentials by federating the gateway's identity into your project. Installing the [GCP Workload Identity Federation](/agentic-access/credential-sources/gcp-wif.md) component creates a Workload Identity Pool and OIDC provider that trust tokens signed by your gateway, so P0 grants and revokes short-lived, policy-scoped Google Cloud access per session. It builds on the base Google Cloud integration with IAM management and is the prerequisite for the GCP MCP servers. This component is in preview.

#### Posture

* **Azure IAM Assessment Monitors.** Surface unused, excessive, and unused-privileged Azure role assignments, bringing Azure to parity with the AWS and Google Cloud assessments. New monitors flag role assignments that go unused, grant more than is needed, or carry unused privileged access, and the Azure assessment now analyzes federated access risk. Install the assessment from [IAM assessment (Azure)](/integrations/resource-integrations/microsoft-azure/iam-assessment.md). At launch these monitors report findings only; automated fix generators are not yet available, so remediation is manual.

#### API & CLI

* **Inventory Export API.** Pull your cloud [access inventory](/inventory/access-inventory.md) programmatically over a new API instead of clicking **Export as JSON** in the app, so you can feed identities, grants, credentials, and resources into data warehouses, compliance workflows, or custom integrations on a schedule. List your P0 environments, then export a chosen environment's inventory as grouped JSON; exported findings now also carry risk scoring and timestamps. See the [Inventory export API](/inventory/inventory-export-api.md) reference.

### Enhancements

#### User Experience

* **Microsoft Entra ID PIM Eligibility in Inventory.** The [Access Inventory](/inventory/access-inventory.md) grants table now shows an `Eligible` tag beside Microsoft Entra ID roles assigned through Privileged Identity Management, so you can tell eligible (PIM) assignments apart from active ones at a glance. Active assignments no longer add a redundant tag, and the full status remains available in TSV and JSON exports.

#### API & CLI

* **File Transfer Audit Logs.** Uploads, downloads, and deletions performed with [`p0 file-transfer`](/p0-cli/p0-commands-and-usage/p0-file-transfer.md) now emit audit-log events, giving you a complete record of file movement for compliance. Each event records the request, file transfer, and bucket involved.
* **File Transfer Install Verifier.** Installing the [File Transfer](/integrations/resource-integrations/file-transfer.md) integration now verifies the target S3 bucket and derives its region and partition automatically, removing manual configuration steps that were error-prone.

## June 2026

### New Features

#### Integrations

* **GitHub Without an Okta Directory.** The [GitHub integration](/integrations/resource-integrations/github.md) no longer requires Okta. P0 now identifies GitHub users through a verified organization email domain, so teams on any identity provider can manage GitHub team access with P0.

### Enhancements

#### Documentation

* **Access Inventory and Posture Getting-Started Guides.** New guides walk you through [Access Inventory](/getting-started/getting-started-with-access-inventory.md) and [Posture](/getting-started/getting-started-with-posture.md), including a beginner's guide to the [inventory query language](/inventory/query-search/query-language-basics.md) and a how-to for [creating a custom posture monitor](/posture/create-a-custom-monitor.md).
* **IAM Assessment Install Guides.** New install guides cover the IAM assessment for [AWS](/integrations/resource-integrations/aws/iam-assessment.md), [Google Cloud](/integrations/resource-integrations/google-cloud/iam-assessment.md), and [Azure](/integrations/resource-integrations/microsoft-azure/iam-assessment.md).
* **Microsoft Entra ID Security Perimeter Logs.** A new guide explains how to [view security perimeter logs](/integrations/directory-integrations/microsoft-entra-id/viewing-security-perimeter-logs.md) for Microsoft Entra ID.

#### API & CLI

* **Automatic Google Cloud Login.** Connect to a Google Cloud target with [`p0 ssh`](/p0-cli/p0-commands-and-usage/p0-ssh.md) without running `gcloud auth login` first. When your gcloud credentials are missing or expired, P0 runs the login automatically, matching the existing AWS and Azure behavior instead of failing partway with a manual login hint.
* **Fish Shell Support.** Use the credential output from [`p0 aws role assume`](/p0-cli/p0-commands-and-usage/p0-aws-role-assume.md), `permission-set`, and `rds` in the fish shell. These commands previously printed only bash and zsh syntax, so fish users ended up with unset credentials and failing AWS calls; the CLI now detects fish and prints the matching syntax.
* **Clearer GCP SSH Errors.** [`p0 ssh`](/p0-cli/troubleshooting/p0-ssh.md) now explains that a rejected Google Cloud connection is most often caused by OS Login not being enabled, instead of a generic "Permission denied (publickey)" error. The message tells you how to enable OS Login and notes that a just-granted role can take a moment to propagate.
* **File Transfer Improvements.** File transfer reuses your existing SSH request instead of opening a second one, removes the uploaded object from the S3 bucket once the download completes, and refreshes AWS credentials mid-transfer so long uploads no longer fail when temporary credentials expire.
* **MCP Server OAuth Registration.** `p0 claude mcp add` now registers MCP servers using OAuth, so the servers it adds to Claude Code authenticate through the standard OAuth flow.

### Stability & Fixes

* **API Key Creation.** Fixed an error that prevented creating an [API key](/p0-management/generating-an-api-key.md).
* **GCP SSH Group Resolution.** Fixed group resolution so access targets the correct group when multiple Google Cloud SSH groups are installed.

## May 2026

### New Features

#### API & CLI Enhancements

* **File Transfer Command.** New `p0 file-transfer` command uploads files directly to S3 with multipart support, progress tracking, and presigned download URLs. Supports arbitrarily large files with automatic retry on transient failures.
* **AI Gateway integration.** New `p0 claude mcp add` command registers MCP servers with Claude Code, enabling AI-assisted access management through the P0 AI Gateway.

#### Security & Compliance Workflows

* **Agentic Access Policies.** [Access policies](/policy-studio/policy-studio/agentic-access-policies.md) can now match on the AI agent or MCP client that initiated a request, enabling fine-grained rules based on agent identity and agent owner group.
* **On-Call Schedule Selection for Auto-Approval.** Auto-approval rules for [Incident.io](/integrations/approval-integrations/incidentio.md) now let you select specific on-call schedules, matching the existing [PagerDuty](/integrations/approval-integrations/pagerduty.md) behavior for more granular control.

#### Cloud Platform Integrations

* **RDS PostgreSQL Generally Available.** The Amazon RDS [PostgreSQL integration](/integrations/resource-integrations/postgresql.md) is now generally available.
* **Azure Bastion SSH Generally Available.** The [Azure Bastion SSH](/integrations/resource-integrations/microsoft-azure/configure-bastion-host-integration.md) integration is now generally available, with session audit logging for tracking active connections.

### Enhancements

#### User Experience

* **Policy Studio Redesign.** Compact pill-style selectors replace vertical radio groups so the entire policy definition fits on one screen in [Policy Studio](/policy-studio/policy-studio.md), with per-section status icons for better readability.
* **Compact Access Request Lists.** Access request lists display with reduced spacing, making it easier to scan multiple requests at once.
* **Session Timeout Handling.** The "Stay Logged In" button hides when your identity provider caps the session length, and dismissing the session warning now correctly resets the session timer.

#### Reliability & Performance

* **Improved AWS IDC Error Messages.** When a permission-set assignment fails because the target role exceeds the managed-policy quota, P0 now explains the cause and suggests remediation steps.
* **Automatic Connector Install Retry.** Database connector installation retries IAM permission validation automatically, eliminating manual retries during initial setup.

#### API & CLI Enhancements

* **AWS GovCloud SAML Support.** The CLI now supports SAML assertions for AWS GovCloud (`aws-us-gov`) partitions, enabling [role assumption via Okta SSO](/p0-cli/p0-commands-and-usage/p0-aws-role-assume.md) in regulated environments.

### Stability & Fixes

* **Web Request Modal.** Fixed an error when changing the resource field after selecting an access type in the [web request modal](/access-management/access-management/just-in-time-access/requesting-access/web-request-modal.md).
* **Auto-Approval Expiry.** When multiple auto-approval rules apply, P0 now selects the shortest expiry timestamp to ensure least-privilege durations.
* **`p0 ssh` Polling.** Fixed a URL construction issue that caused [SSH](/p0-cli/p0-commands-and-usage/p0-ssh.md) polling requests to fail with 404 errors.
* **CLI Error Handling.** Fixed an error-handling path that could crash during Okta login when reading an HTTP response body twice.

## April 2026

### New Features

#### Integrations & Approvals

* **Incident.io On-Call Approvals & Escalation.** Users on-call in [Incident.io](/integrations/approval-integrations/incidentio.md) can now approve access requests. Requestors can also escalate by paging the on-call responder directly from P0.

#### Database Access

* **New PostgreSQL Integration.** A redesigned, connector-based [PostgreSQL integration](/integrations/resource-integrations/postgresql.md) for AWS RDS. Install, list databases, and manage just-in-time access with improved reliability and setup.

#### Access Management

* **Custom Durations for Auto-Approved Requests.** Auto-approved requests now honor the requested duration instead of defaulting to one hour.
* **Configurable Pending Request Timeout.** Administrators can set how long [access requests](/access-management/access-management/just-in-time-access/requesting-access.md) remain pending before automatic denial, with a configurable default.
* **GCP and Azure SSH Parent Requests.** Request [SSH access](/integrations/resource-integrations/ssh.md) to all nodes in a GCP project or Azure subscription using `p0 request ssh parent`.

### Enhancements

#### Cloud Platform Integrations

* **Simplified Azure SSH Setup.** [Azure SSH](/integrations/resource-integrations/microsoft-azure/install-ssh-access.md) no longer requires the full Entra ID directory integration, and the interactive admin consent flow has been removed, significantly reducing installation complexity.
* **Okta Group Assignment Now GA.** [Okta](/integrations/directory-integrations/okta.md) group assignment is out of beta and available.
* **Google Cloud Labels for Grouping.** Google Cloud labels are now used as a fallback for grouping tags when organizing resources.
* **AWS Identity Center Email Matching.** P0 now matches on Identity Center user email in addition to username, resolving user-not-found errors for customers whose IDC usernames differ from their email.

#### User Experience

* **Request Modal Improvements.** [Slack](/integrations/notifier-integrations/slack.md) and web request modals now pre-populate dropdown options on focus, and the system preserves form values during slow responses.
* **Integration Labels on Notifications.** Notifications and request details now display which cloud platform (AWS, GCP, Azure) a request targets, making multi-cloud approvals clearer.
* **Pagination for Active Requests.** Active and [pre-approval](/access-management/access-management/just-in-time-access/approving-access/pre-approving-access.md) request pages now support pagination with configurable page sizes.
* **Faster GCP Resource Listing.** Listing GCP resources in Slack, CLI, and the web UI is significantly faster for large environments.

#### CLI Improvements

* **Google Account Selection.** `p0 login` with Google Workspace now forces account selection, preventing accidental login with the wrong account.
* **Multi-Org SSH Configuration.** [`p0 ssh`](/p0-cli/p0-commands-and-usage/p0-ssh.md) proxy now supports the `P0_ORG` environment variable for multi-organization SSH configurations via `~/.ssh/config`.
* **SSH Debug Commands.** `p0 ssh` now displays reproducible CLI commands for all providers (AWS, GCP, Azure) to simplify troubleshooting.

### Stability & Fixes

* **CLI Network Resilience.** The CLI now retries polling for request status on network interruption without creating duplicate requests.
* **CLI Pipe-Friendly Output.** Spinner output from [`p0 ls`](/p0-cli/p0-commands-and-usage/p0-ls.md) and `p0 request` is suppressed when piped to other tools.
* **`--size` with `--json` Fix.** The `--size` flag now correctly limits results when combined with `--json`.
* **Access Request Hang Fix.** Fixed an issue where access requests would hang indefinitely while waiting for approval.
* **SSH Pre-Approved Sudo Fallback.** Fixed [`p0 ssh`](/p0-cli/p0-commands-and-usage/p0-ssh.md) failing to fall back to non-sudo access when sudo was not pre-approved.
* **AWS SSH from New Machine.** Fixed [SSH access](/integrations/resource-integrations/ssh.md) failing when connecting from a new machine or after key regeneration.
* **Pre-Approval Date Validation.** Fixed date validation errors that occurred in certain time zones when creating pre-approvals.

## March 2026

### New Features

#### On-Premises Access

* **Linux Connector for SSH.**\
  SSH access to on-premises Linux machines now uses a lightweight connector instead of requiring the P0 agent on each target host. Includes [session recording](/access-management/access-management/just-in-time-access/session-recording.md) and security assessment support.
* **On-Premises RDP Access.**\
  Request and provision just-in-time access to Windows machines via Remote Desktop Protocol, including session recording and playback.
* **`p0 sudo` Command.**\
  New CLI command to request just-in-time sudo access and run commands as another user on Linux machines.
* **Windows Admin Integration.**\
  Manage Windows user accounts and passwords through P0, with Active Directory user listing and password reset lifecycle.

#### Integrations

* [**Cisco Secure Access**](/integrations/resource-integrations/cisco-secure-access.md) **Integration.**\
  JIT network routing for SSH through Cisco Secure Access.
* **Zscaler Private Access Integration.**\
  JIT SSH network routing through Zscaler Private Access.
* **incident.io Auto-Approval.**\
  Access policies can now use incident.io on-call schedules as automatic approvers for emergency access workflows.
* **Webex Notifier.**\
  Send access request notifications and approvals through Webex.
* **Splunk Stack Access Integration.**\
  Manage access to Splunk Stack environments with manifest-based lifecycle and typed Lambda API.

#### Session Recording & Audit

* **Unified Terminal Replay.**\
  Session recordings across all integrations now use a terminal replay player with full ANSI color support, playback controls, and search.
* **Splunk Session Audit.**\
  Read SSH session recordings directly from Splunk for centralized audit trail.
* **Self-Hosted SSH Session Recording.**\
  View SSH session evidence including terminal replay and audit trail for [self-hosted](/integrations/resource-integrations/ssh/self-hosted.md) instances.

#### Vault & Secrets

* **Secrets Vault Viewer.**\
  New vault page in the UI to view and manage secrets created by P0, with filtering, caching, and management tags.
* [**GCP Secret Manager**](/integrations/resource-integrations/google-cloud.md) **Access.**\
  Request access to GCP Secret Manager secrets via resource requests, with project-level IAM policies.

#### Security & Compliance

* **SSH Security Assessment.**\
  Assess SSH security posture across AWS SSM and self-hosted instances, with risk findings.
* **Workload Identity Federation (WIF) Support.**\
  WIF identities can authenticate, request access, and manage policies through Policy Studio.
* **SSH Risk Findings in Assessment.**\
  SSH security assessments now include actionable risk findings.
* **Self-Hosted SSH Assessment.**\
  Run security assessments against self-hosted SSH instances.

#### Cloud Platform Integrations

* **RDP Proxy Access in CLI.**\
  New RDP proxy access support in the [P0 CLI](/p0-cli/p0-commands-and-usage.md) for remote desktop connections.

### Enhancements

#### Search & Navigation

* **Regex Search in Inventory and Monitors.**\
  Use regex patterns (`/pattern/`) in the [query search](/inventory/query-search.md) bar for inventory and monitor queries.
* **SSH Targeting by FQDN and Public IP.**\
  Target [GCP](/integrations/resource-integrations/google-cloud.md), [Azure](/integrations/resource-integrations/microsoft-azure/install-ssh-access.md), and AWS SSH instances by FQDN, public IP, or custom tags instead of instance ID.
* **Hostname-Based Access Requests.**\
  Users can request SSH access by hostname instead of requiring a UUID.
* **Linux User Listing.**\
  List users on Linux machines directly from the P0 UI for access requests.

#### Authentication & Access

* **Self-Hosted SSH Key Authentication.**\
  Self-hosted SSH switches from certificate signing to public key push for broader compatibility.
* **Sudo Access via Groups.**\
  Sudo access provisioning now uses groups, removing the need to start a new shell session after access is granted.
* [**Azure Bastion**](/integrations/resource-integrations/microsoft-azure/configure-bastion-host-integration.md) **Premium SKU.**\
  Azure Bastion integration now supports premium SKU.
* [**`p0 ssh`**](/p0-cli/p0-commands-and-usage/p0-ssh.md) **Retry on Unknown Port Errors.**\
  Automatically retries connection failures during self-hosted SSH access propagation.

#### Reliability & Performance

* [**PostgreSQL**](/integrations/resource-integrations/postgresql.md) **Duplicate Provisioning.**\
  PostgreSQL no longer errors when provisioning access to a user who already has it.
* **Improved CLI Network Resilience.**\
  The CLI retries transient network errors with exponential backoff instead of failing immediately.

#### User Experience

* **Dashboard Empty State.**\
  The posture dashboard panel shows clear empty results instead of an infinite loading state when no findings exist.
* **Removed Stale Announcement Banners.**\
  Cleans up outdated Policy Studio announcement banners from the UI.
* **Fixed Cisco in SSH Installer.**\
  [Cisco](/integrations/resource-integrations/cisco-secure-access.md) now appears correctly in the SSH network access provider list during installation.

#### Stability & Fixes

* **Slack OAuth Token Handling.**\
  Fixes stale [Slack](/integrations/notifier-integrations/slack.md) OAuth tokens that accumulated errors silently.
* **RDP Session Recordings.**\
  Fixes RDP session recordings not appearing in production.
* **`p0 scp` Error Messages.**\
  Suppresses spurious "SSH session terminated" messages for [`p0 scp`](/p0-cli/p0-commands-and-usage/p0-scp.md) and surfaces missing file and permission errors.
* **GCP Access Conditions.**\
  Fixes condition chaining for GCP access requests across multiple grants.
* **Terraform Null Field Crash.**\
  Fixes a crash when optional Terraform provider fields are set to null.
* **Integration Error Surfacing.**\
  Integration errors from Cloud Run now surface to end-users with actionable messages instead of failing silently.

***

## February 2026

### New Features

#### SIEM Integrations

* [**Datadog**](/integrations/siem-integrations/datadog-setup.md) **Audit Log Integration.**\
  Send P0 audit logs directly to Datadog with a self-service installer in the UI.
* **S3 Audit Log Archival.**\
  Automatically archive audit logs to an Amazon S3 bucket on a 15-minute schedule.

#### Cloud Platform Integrations

* [**AWS RDS**](/integrations/resource-integrations/aws/managed-services/aws-rds.md) **Token Generation.**\
  New `p0 aws rds generate-db-auth-token` CLI command to generate database authentication tokens using P0 grants.
* [**AWS RDS**](/integrations/resource-integrations/aws/managed-services/aws-rds.md) **Terraform Install.**\
  Set up AWS RDS integration via Terraform directly from the web UI installer.
* [**MySQL**](/integrations/resource-integrations/mysql.md) **and RDS Terraform Installers.**\
  Set up MySQL and AWS RDS integrations via Terraform directly from the web UI.
* **GCP Security Perimeter Region Configuration.**\
  [GCP security perimeter](/integrations/resource-integrations/google-cloud/security-perimeter.md) Cloud Run deployments are no longer hard-coded to `us-west1`; specify your preferred region during installation.
* **SSH Alternative Name Targeting.**\
  [SSH](/p0-cli/p0-commands-and-usage/p0-ssh.md) nodes can be targeted via hostname, FQDN, instance ID, or custom tags using `p0 ls` and `p0 ssh`.

#### Authentication & Access

* [**Okta**](/integrations/directory-integrations/okta.md) **Groups as Security Reviewers.**\
  Assign Okta groups as Security Reviewers in P0 Management, not individual users only.
* **AWS IDC Delegated Admin Accounts.**\
  Manage access in AWS Identity Center environments using delegated admin accounts.
* **SSH Host Key Caching.**\
  The CLI caches SSH host keys locally for faster connections and detects host key mismatches with guided recovery.
* **SSH Password Authentication Disabled.**\
  The CLI now enforces public key authentication for [SSH](/p0-cli/p0-commands-and-usage/p0-ssh.md) and [SCP](/p0-cli/p0-commands-and-usage/p0-scp.md), preventing fallback to less secure methods.

#### User Experience

* **Refreshed Navigation.**\
  We redesigned the sidebar navigation with a light theme and outlined icons for a cleaner look.
* **Integration Documentation in UI.**\
  Integration pages now display contextual documentation, descriptions, prerequisites, and use-case guidance directly in the setup flow.

### Enhancements

#### User Experience

* **Audit Logs for Request Creation.**\
  The `api.jit.permission-requests.created` event now fires for all request sources: UI, CLI, Slack modal, and slash command.
* **MySQL Connectivity Instructions.**\
  [Slack](/integrations/notifier-integrations/slack.md) notifications for approved MySQL/RDS access now include connection instructions.
* **AWS Permission Set Validation.**\
  Requests for AWS Identity Center permission sets with customer-managed policies are validated at submission time.

#### Authentication & Access

* [**Kubernetes**](/integrations/resource-integrations/kubernetes.md) **EKS Auto-Mode Support.**\
  The Kubernetes installer now supports EKS clusters with Auto-Mode enabled.

#### Stability & Fixes

* [**Microsoft Entra ID**](/integrations/directory-integrations/microsoft-entra-id.md) **Group Caching.**\
  Fixes a bug where Entra ID groups were not listed in the Slack access request modal.
* **Device Code Authentication.**\
  Fixes the device code login flow that was always showing "User Not Logged In."
* **Database Connector Error Messages.**\
  Database connector commands now provide actionable error messages and suggestions instead of misleading privilege errors.
* [**`p0 kubeconfig`**](/p0-cli/p0-commands-and-usage/p0-kubeconfig.md) **Windows Fix.**\
  Fixes `p0 kubeconfig` to use OS-safe command execution on Windows.
* **Slack Pre-Approval Validation.**\
  Fixes a bug where re-requesting access from [Slack](/integrations/notifier-integrations/slack.md) bypassed pre-approval validation.
* **GCP API Error Handling.**\
  Fixes error handling in GCP API calls that caused issues for Google Cloud requests.
* **Magic Link Login.**\
  Fixes a 500 error when clicking the email magic link for newly provisioned organizations.
* **Okta Token Exchange Errors.**\
  Surfaces specific [Okta](/integrations/directory-integrations/okta.md) token exchange errors instead of a generic "session expired" message.
* [**`p0 scp`**](/p0-cli/p0-commands-and-usage/p0-scp.md) **Error Surfacing.**\
  Surfaces missing file/directory and permission denied errors during `p0 scp` operations.
* [**`p0 kubeconfig`**](/p0-cli/p0-commands-and-usage/p0-kubeconfig.md) **Bug Fix.**\
  Fixes incorrect parameter ordering in `p0 request k8s resource` generated by `p0 kubeconfig`.

***

## January 2026

### New Features

#### Core Platform Capabilities

* **Policy Studio.**\
  New Policy Studio tab consolidates [access policies](/policy-studio/policy-studio.md) and approval policies into a single management view.
* [**Microsoft Entra ID**](/integrations/directory-integrations/microsoft-entra-id.md) **Manager Approvals.**\
  Approval workflows can now route to the requestor's manager via Entra ID manager lookup.
* **Approvers Can Revoke Pre-Approvals.**\
  Designated approvers can now revoke standing [pre-approvals](/access-management/access-management/just-in-time-access/approving-access/pre-approving-access.md), not only admins.
* **In-App Announcement Banner.**\
  New in-app banner for surfacing product updates and important notices to users.
* **AWS SSH IP Address Search.**\
  Search for SSH targets by IP address in the AWS integration.
* **GCP Role Removal Suggestions.**\
  Posture management now surfaces suggestions to remove unused GCP roles.
* **P0 Tags on Permission Sets.**\
  Permission sets display P0 metadata tags for better visibility into managed resources.

#### API & CLI Enhancements

* [**`p0 ls`**](/p0-cli/p0-commands-and-usage/p0-ls.md) **Filtering.**\
  Filter results by resource type or name with the `p0 ls` command.
* **CLI Version Check Messaging.**\
  The CLI notifies you about available updates and can display custom messages from P0 (security advisories, deprecation notices).
* **`--request=false` for Role Assumption.**\
  New flag for [`p0 aws role assume`](/p0-cli/p0-commands-and-usage/p0-aws-role-assume.md) to bypass the access request check, useful for debugging federated SSH.
* **`--debug` Flag for AWS/SSM Validation.**\
  Validates AWS CLI and SSM plugin installations to help troubleshoot SSH connection issues.
* **Sudo Access by Default (Environment Variable).**\
  New environment variable to control whether [`p0 ssh`](/p0-cli/p0-commands-and-usage/p0-ssh.md) requests sudo access by default.
* **Two-Character SSH Group Search.**\
  Lowered the minimum search length to two characters when searching SSH group targets.
* **Date Column in Request History.**\
  Request history table now shows a visible date column.

### Enhancements

#### User Experience

* **Activity Page Search and Filtering.**\
  Search and filter controls on the activity and audit log pages in the web UI.
* **Configurable Page Sizes.**\
  Page-size selectors on pre-approvals and activity log pages for viewing more entries at once.
* **AWS Account Filtering in Access Policies.**\
  Filter [access policies](/policy-studio/policy-studio/aws-filtering.md) by specific AWS accounts.

#### Notifications & Integrations

* [**Slack**](/integrations/notifier-integrations/slack.md) **Re-Request Duration Selector.**\
  Choose a different time window when re-requesting access from a Slack notification.

#### Reliability & Performance

* **AWS SSH Node Refresh Interval.**\
  Configurable refresh interval for AWS node discovery, improving SSH target visibility timing.
* **Concurrent SSH Grant/Revoke.**\
  Fixes reliability issues when granting and revoking SSH access simultaneously on the same host.
* **AWS IDC Credential Retries.**\
  Increases retries for AWS credential fetching with a user-friendly transient error message.

#### Stability & Fixes

* [**EKS**](/integrations/resource-integrations/kubernetes.md) **ARN Fix for us-east-1.**\
  Corrects ARN formatting for EKS clusters in `us-east-1` that prevented access requests.
* **EKS Auto-Mode Installer Warning.**\
  Warns during Kubernetes setup if the cluster uses Auto-Mode, which requires extra configuration.
* **Slack Modal Timeout.**\
  Slack modals no longer time out during access requests; heavy processing runs in the background.
* **CLI Login Page Text.**\
  Fixes login success page to not show a premature success message before login completes.
* [**Snowflake**](/integrations/resource-integrations/snowflake.md) **Installer.**\
  Resolves an error in the Snowflake integration installer that blocked initial setup.
* [**Okta**](/integrations/directory-integrations/okta.md) **Session Expiration.**\
  Improves behavior when an Okta session expires, prompting re-authentication instead of showing an error.
* **Kubernetes Permission Display.**\
  Fixes incorrect permission display for certain Kubernetes RBAC configurations.
* **Web Modal Validation.**\
  Surfaces field-level validation errors in access request modals instead of silently failing.
