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:
| Tier | How It Works | When to Use |
|---|---|---|
| No Access | Publisher cannot access the managed resource group | Maximum lockdown — customer handles all maintenance coordination manually |
| Just-in-Time (JIT) | Publisher requests access; customer approves each request with a defined time window | Recommended for production — maintenance happens with explicit approval |
| Full Access | Publisher has standing access via a security group | Development 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:
- Corral builds new container images and pushes to Corral’s Azure Container Registry
- A GitHub Actions workflow authenticates to your tenant
- New containers are deployed to your Container Apps
- No infrastructure changes, no downtime for stateless services
Infrastructure Updates (Occasional)
For changes that require new Azure resources or configuration:
- Full deployment workflow runs (same as initial deployment, minus identity setup)
- Bicep templates are re-applied with new resource definitions
- 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:
| Artifact | What It Is | Why |
|---|---|---|
| App registrations | Identity objects for SSO | Required for Entra ID integration |
| Container images | Application code | Pulled by your Container Apps on startup/update |
| Onboarding status | Deployment phase tracking | Operational metadata for monitoring provisioning |
| Marketplace events | Subscription lifecycle notifications | Azure 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