Skip to main content

Services

Sprintsail provides a marketplace of managed services that you can provision and bind to your apps. Services are brokered via the Open Service Broker API (OSBAPI) and managed through Crossplane.

Service marketplace

View available services:

ss services marketplace
SERVICE         PLANS                      DESCRIPTION
postgresql starter, growth, dedicated PostgreSQL managed database
redis starter, growth, dedicated Redis in-memory cache/store
s3 starter, growth S3-compatible object storage

Create a service

Provision a new service instance:

ss services create my-postgres --type postgresql --plan growth

Check provisioning status:

ss services info my-postgres
Name:      my-postgres
Type: postgresql
Plan: growth
Status: ready
Region: us-east-1
Created: 2026-04-01T10:30:00Z
Bound to: my-app

Provisioning typically takes 1--3 minutes for databases and under 30 seconds for Redis and S3.

Bind a service to an app

Binding injects connection credentials into your app as environment variables:

ss services bind my-postgres my-app

This restarts your app with the new credentials. The injected variables depend on the service type (see below).

Unbind a service

Remove the binding. The service continues running but credentials are removed from the app:

ss services unbind my-postgres my-app

Destroy a service

Permanently delete a service and all its data:

ss services destroy my-postgres

You must unbind all apps first. You will be prompted to type the service name to confirm.

PostgreSQL

Managed PostgreSQL with automated backups, point-in-time recovery, and connection pooling.

Plans

FeatureStarterGrowthDedicated
Storage1 GB50 GB500 GB
Connections202002000
Replicas01 read replicaUp to 5
BackupsDaily, 7-day retentionDaily, 30-day retentionContinuous, 90-day
Version161615 or 16
HANoYes (multi-AZ)Yes

Injected environment variables

When bound, the following variables are set on your app:

DATABASE_URL=postgres://user:pass@host:5432/dbname
PGHOST=host
PGPORT=5432
PGUSER=user
PGPASSWORD=pass
PGDATABASE=dbname

Direct access

For debugging or migrations, connect directly via the CLI:

ss services connect my-postgres

This opens a psql session tunneled through the platform. You can also use:

ss services credentials my-postgres

Redis

Managed Redis for caching, session storage, and pub/sub.

Plans

FeatureStarterGrowthDedicated
Memory25 MB1 GB16 GB
Max connections2050010000
PersistenceNoAOFAOF + RDB
HANoYes (replica)Yes (cluster)

Injected environment variables

REDIS_URL=redis://user:pass@host:6379
REDIS_HOST=host
REDIS_PORT=6379
REDIS_PASSWORD=pass

Direct access

ss services connect my-redis

S3 (Object Storage)

S3-compatible object storage powered by the underlying cloud provider.

Plans

FeatureStarterGrowth
Storage5 GB500 GB
Bandwidth10 GB/mo1 TB/mo
VersioningNoYes

Injected environment variables

S3_BUCKET=bucket-name
S3_ENDPOINT=https://s3.us-east-1.amazonaws.com
S3_ACCESS_KEY=AKIA...
S3_SECRET_KEY=secret
S3_REGION=us-east-1

These credentials work with any S3-compatible SDK (AWS SDK, boto3, MinIO client).

Listing services

List all services in the current organization:

ss services list
NAME           TYPE         PLAN     STATUS   BOUND TO
my-postgres postgresql growth ready my-app
my-redis redis starter ready my-app, my-worker
staging-db postgresql starter ready staging-app

Service lifecycle

Services are independent from apps. Destroying an app does not destroy its bound services. This means you can:

  • Bind one service to multiple apps (e.g., a shared database for an API and a worker)
  • Rebind a service to a replacement app during migrations
  • Keep data intact across app redeployments

Next steps