Skip to content
Cloud
Sign up

Push to GitHub and get a running app. Preview every branch, attach a managed database, add a domain and roll back in one step. Approvals only appear when a change is risky.

Aspian Cloud/Kings Guards/guard-roster

guard-roster

Stored in LagosSynthetic demo data

Guard rosters and incident logging for field teams

VisitDeploy

Awaiting approvalProduction change: Add patrol exceptions to incident log

T. Adeyemi and K. Okafor were notified on WhatsApp at 10:31. You asked for it, so you can’t approve it.

View deployment

Production

Healthy
Server response, p95, last hour
138 ms
Current deployment
Fix roster CSV export, 4 Nov
Domains
guard-roster.apps.example
Source
main @ 9c1e7b2
Rollback restores the previous app code and environment variables. Database changes are not reversed.

Recent deployments

View all

  • Add patrol exceptions to incident log

    main @ a81d03f

    Production

    Awaiting approval0 of 2 approvals

    Today 10:31

  • Add patrol exceptions to incident log

    feat/patrol-exceptions @ a81d03f

    Preview

    ReadyMasked seed data

    Today 09:58

  • Fix roster CSV export

    main @ 9c1e7b2

    Production

    CurrentCanary passed

    4 Nov

Resources

  • roster-db

    Postgres 17, high availability

    Healthy

    Drill passed 3 days ago

  • sessions

    Valkey 8

    Healthy

    12% memory used

  • alerts

    Messaging

    Healthy

    WhatsApp, then SMS

Agents

Coding agent key owned by D. Eze, expires 28 Nov

1 blocked attempt this week: a production database change after reading logs. It went to approval instead of running.

A project overview with a production change waiting for two approvers. The customer, app and people are examples.

The everyday work stays one step.

A deploy to a preview, a scale within budget or a rollback runs straight away and is logged. Nobody waits for an approval to try something out.

Deploy from GitHub
Connect a repository and push. Builds run on our servers, so a slow connection never stalls a release.
A preview for every branch
Each pull request gets its own address, seeded with masked or synthetic data. Real personal records stay in production.
Domains and certificates
Add your own domain. Certificates are issued and renewed for you.
Logs and metrics
Stream logs from the dashboard or the terminal, and watch response times and errors per release.

Deployments / dpl_8kd2

Add patrol exceptions to incident log

Healthy

Production change with a database migration, requested by D. Eze

  1. Built

    10:32, 1 min 08 s

    • Built from main @ a81d03f on our servers, not a laptop
    • Image signed by the Aspian pipeline
  2. Checks passed

    10:33

    • Software bill of materials generated
    • Vulnerability scan: 0 critical, 0 high, 2 low
    • Secret scan clean, image signature verified
    • Migration adds one field and changes no existing rows
  3. Approved by 2 of 2

    10:42 and 11:05

    • T. Adeyemi, passkey on phone
    • K. Okafor, passkey on laptop
    • Both approvals bound to plan 7Q2F-8KD2-51C0
  4. Migration applied

    11:06

    • Added incidents.patrol_exception_at
    • 0 existing rows changed
  5. Rolled out

    11:06 to 11:21

    • 10% of traffic for 10 minutes, error rate 0.2% against a 2% limit
    • Then 100% of traffic
  6. Healthy, and evidence recorded

    11:21

    • Server response p95: 142 ms
    • Change added to the Trust Page with both approvers
Audit entries 4,812 to 4,819, chain verified 11:22

Every deploy is one record, from commit to healthy.

The build, the checks, the approvals, the migration and the rollout sit on one timeline. When something goes wrong, you can see what happened without asking around.

Rollback says what it doesn’t undo

One step restores the previous app code and environment variables, with no approval needed. Database changes stay in place. Reversing a migration is its own plan, with its own approvals.

Managed Postgres and Valkey, with backups you’ve seen restore.

A database you can’t restore is a liability. So the platform tests recovery every week and keeps the result where you, your board and your auditors can read it.

What managed databases include
High availabilityPostgres runs on CloudNativePG with a standby replica and automatic failover.
Point-in-time recoveryRestore to a chosen moment. Backups are kept in a second facility in the same country as your app.
Weekly restore drillsThe platform restores a backup every week and records the data loss, the restore time and whether checksums match.
Governed accessRead-only and scoped to one database by default. Writes to production go through a plan and an approval.
ValkeyFor caches, sessions and queues, in the same project, with its own tools.

roster-db

Passed

Restore drill, 3 days ago

Data lost
48 s
Time to restore
9 min 12 s
Checksums
Match
Each drill produces a signed certificate.

Only images our pipeline built and signed can run.

Every push goes through the same checks, in the same order. If a step fails, nothing reaches the cluster.

  1. 1

    Build

    On our servers, from the commit you pushed.

  2. 2

    Bill of materials

    Every package in the image is listed.

  3. 3

    Vulnerability scan

    A critical finding fails the build, unless waived with an expiry date.

  4. 4

    Secret scan

    A key or password left in the code fails the build.

  5. 5

    Sign

    The image is signed with the pipeline’s key.

  6. 6

    Admit

    The cluster refuses unsigned images and images signed by any other key.

From your terminal, or from your coding agent.

The aspian CLI covers the daily work. The MCP server lets AI coding agents do the same, under the same rules as your staff.

aspian login
Sign in to your Aspian Cloud account.
aspian deploy
Deploy the current branch. Add --prod to request production.
aspian logs
Stream logs for an app and environment.
aspian rollback
Return to an earlier release in one step.
aspian env
Set environment variables. Secret values are write-only.
aspian db
Open a scoped, read-only database session.
aspian export
Start an export of your project.

mcp session, key owned by D. Eze

Read customer content
agent read_logs guard-roster --since 1h
      312 lines returned, session marked as having read logs

agent create_plan "add index on incidents.created_at"
      plan 3HX9-02LM, risk class: production change

agent apply_plan 3HX9-02LM
! refused: 403 SESSION_TAINTED
      approval requested from T. Adeyemi and K. Okafor

agent deploy --preview feat/roster-index
✓ preview ready, no approval needed

Every MCP tool has a risk class, and the class decides who must approve it. Reads and reversible changes run straight away.

Once an agent has read logs or customer data, anything it plans for production needs a person’s approval. Agents can use a secret but never see its value.

How risk classes and approvals work

A spend cap that never deletes your data.

Set a cap for each project. When it’s reached, previews and staging go to sleep first. Nothing is deleted, and production is never put to sleep by the cap.

Spend this month

82% of cap

Cap set by the account owner for this project.

When the cap is reached

  • Preview environmentsSleeps first
  • StagingSleeps next
  • Databases and backupsNever deleted

Start an export in one step.

Your project comes out in formats other platforms and your own team can run. We test the bundle by booting it on a clean machine with no Aspian components.

Terraform
The infrastructure your apps need, as code you can apply elsewhere.
Helm charts
To install your apps on any Kubernetes cluster.
Docker Compose
To run your apps on a single machine.
Database dumps
Standard Postgres dumps you can restore with ordinary tools.

Secrets come back as a list of keys to re-enter, never as values. Credentials, DNS and third-party services still need transition work, and the bundle lists what’s left to do.

How we test the way out

Everything in one place, with nothing to bolt on.

The features teams expect from the best developer platforms, plus the controls and evidence regulated organisations need. Choose a group to see what it covers.

  • GitHub, GitLab and Docker images

    Deploy from a repository or a prebuilt image.

  • Server-side builds

    Builds run on our side with a shared cache, so a slow connection never matters.

  • Monorepos

    Point each service at its folder; only what changed rebuilds.

  • Preview for every branch

    Seeded with masked or synthetic data, asleep when nobody is using it.

  • Canary releases

    Send a slice of traffic first and roll back by itself if errors rise.

  • One-step rollback

    Return to any earlier release, with a note of what a rollback does not undo.

  • Config as code

    Describe services in a file in your repository, or manage them with Terraform.

  • Deploy hooks and webhooks

    Trigger deploys from anywhere and get told when they finish.

Bring us the system you can't afford to get wrong.

We are opening Aspian Cloud to organisations in stages. Create an account and we will set up your workspace, or talk to us about the systems you run today.