Corral
Learn > Documentation

Publisher Access & Maintenance

This page explains exactly what access Corral has to your deployment, how maintenance works, and what controls you have.


Access Model

Corral does not maintain standing interactive access to your environment. There are no SSH sessions, no portal logins, no always-on connections.

All routine maintenance is performed through GitHub Actions workflows that authenticate to your tenant using a federated identity credential on the deployment’s managed identity. Every action is:

  • Code-driven — defined in version-controlled workflow files
  • Auditable — every run is a tracked workflow execution
  • Scoped — the federated credential is tied to a specific GitHub repository and environment

What Corral Can and Cannot Access

Corral Can (via the maintenance mechanism)

  • Deploy and update application containers
  • Update infrastructure configuration (Bicep templates)
  • Read deployment metadata from Key Vault
  • Push container images that your Container Apps pull

Corral Cannot (by architecture)

  • Access your SQL database interactively at runtime — no admin credentials are stored outside your Key Vault
  • Access your broader Azure tenant — all access is scoped to the managed resource group
  • Read your data through normal operations — there is no runtime data pipeline from your tenant to Corral’s infrastructure

Transparency Note

The managed identity holds Resource Group Owner on the managed resource group. This is the standard Azure Managed Application pattern — the publisher needs sufficient permissions to deploy and maintain the full set of resources. This role could theoretically be used to retrieve database connection strings and modify firewall rules within that resource group.

This is visible and auditable. Your Azure Activity Log captures every operation. Azure Policy can be configured to alert on unexpected access patterns.


Publisher Access Tiers

Azure Managed Applications support three access levels, configurable at the marketplace offer level:

TierHow It WorksWhen to Use
No AccessPublisher cannot access the managed resource groupMaximum lockdown — customer handles all maintenance coordination manually
Just-in-Time (JIT)Publisher requests access; customer approves each request with a defined time windowRecommended for production — maintenance happens with explicit approval
Full AccessPublisher has standing access via a security groupDevelopment and early deployments — fastest iteration

For production deployments, JIT access gives you the strongest posture: Corral requests access when needed, you see exactly what’s being requested, and you approve with a time-limited window.


How Updates Work

Code Updates (Routine)

For application-only changes — new features, bug fixes, model configuration updates:

  1. Corral builds new container images and pushes to Corral’s Azure Container Registry
  2. A GitHub Actions workflow authenticates to your tenant
  3. New containers are deployed to your Container Apps
  4. No infrastructure changes, no downtime for stateless services

Infrastructure Updates (Occasional)

For changes that require new Azure resources or configuration:

  1. Full deployment workflow runs (same as initial deployment, minus identity setup)
  2. Bicep templates are re-applied with new resource definitions
  3. Database migrations run as part of the deployment

Update Frequency

This section is a work in progress.


What Lives in Corral’s Tenant

A small set of non-customer-data artifacts live in Corral’s infrastructure:

ArtifactWhat It IsWhy
App registrationsIdentity objects for SSORequired for Entra ID integration
Container imagesApplication codePulled by your Container Apps on startup/update
Onboarding statusDeployment phase trackingOperational metadata for monitoring provisioning
Marketplace eventsSubscription lifecycle notificationsAzure Marketplace billing integration

None of these contain your data, your users’ data, or your AI’s data.


Verifying Access Yourself

You don’t need to take Corral’s word for any of this. You can verify:

  • Azure Activity Log — every operation against your managed resource group is logged, including any publisher access
  • Azure Policy — configure alerts for unexpected operations (e.g., direct database access, firewall changes)
  • Network monitoring — inspect traffic to and from your resources
  • Key Vault access logs — see every secret read