page:recipes:inventory manager:rails:relational workspace

Host inventory manager with Rails: relational workspace data

Deploy a inventory manager built with Rails on Ample using the relational records pattern. Compute runs the app in an isolated microVM behind a public HTTPS URL, a managed PostgreSQL 16 database is auto-provisioned and injected as DATABASE_URL. Verified on Rails: a workspace-scoped table, an explicit state machine (draft to review to published) that rejects invalid transitions, and a cross-workspace read that returns nothing (transitions=true isolation=true). Not separately tested: your record schema, states and access rules; treat the inventory manager-specific behavior as your application code.

Representative Queries

Resource Requirements

Infrastructure Requirements

Compute

Postgres

Framework

Rails

Workload

Inventory manager

Release Status

published

Support Status

verified

Execution Status

ready

Prerequisites

Tested Configuration

Input Schema

{
  "additionalProperties": false,
  "properties": {
    "env": {
      "description": "Encrypted environment variables (bucket credentials, secrets)",
      "items": {
        "pattern": "^[A-Z][A-Z0-9_]*=.*$",
        "type": "string"
      },
      "maxItems": 50,
      "type": "array"
    },
    "name": {
      "description": "App name",
      "maxLength": 63,
      "minLength": 1,
      "pattern": "^[a-z0-9-]+$",
      "type": "string"
    },
    "path": {
      "description": "Project directory or ample.toml service",
      "maxLength": 512,
      "minLength": 1,
      "type": "string"
    },
    "release_command": {
      "description": "Migration command run before activation",
      "maxLength": 512,
      "type": "string"
    }
  },
  "required": ["name", "path"],
  "type": "object"
}

Workflow Steps

  1. Build and start
    bundle install into vendor/bundle from Gemfile.lock (development and test groups skipped), then Puma via rails server reading PORT on the ruby-3.4 template with RAILS_ENV=production. The server must bind 0.0.0.0 on PORT.
  2. Implement the pattern on PostgreSQL
    The fixture's module implements relational records: a workspace-scoped table, an explicit state machine (draft to review to published) that rejects invalid transitions, and a cross-workspace read that returns nothing (transitions=true isolation=true). Copy the approach into your schema; keep migrations idempotent and run them with --release-command.
  3. Deploy
    Run the synchronous deploy once and read the result (exit 0 live, 1 failed, 2 blocked). Re-running with no change is a no-op.
    ample deploy . --name --public  
    
  4. Verify
    Fetch the live URL and the pattern self-test route(s) (/p/relational-records) from the example; then run your own checks. On failure read ample logs --kind build then --kind runtime.
    ample logs --kind build  
    

Examples

Success Checks

Limitations

Cost Estimate

Evidence Summary

  1. Kind: canary_run
    Summary: Rails pattern fixture deployed on Ample (bundle install into vendor/bundle from Gemfile.lock (development and test groups skipped), then Puma via rails server reading PORT on the ruby-3.4 template with RAILS_ENV=production); checks passed for relational-records and configuration-secrets. Pattern proof: a workspace-scoped table, an explicit state machine (draft to review to published) that rejects invalid transitions, and a cross-workspace read that returns nothing (transitions=true isolation=true).
    Observed At: 2026-09-20T21:55:28Z
    Implementation Revision: 4f7cb9813c1f-dirty (CLI 4f7cb98)
    Expires At: 2027-03-19T21:55:28Z
    Scope: {"checks":["/p/relational-records"],"pattern":"pattern:relational-records","template":"ruby-3.4"}
  2. Kind: canary_run
    Summary: The same Rails app deployed with a --release-command migration; the marker it created was readable after activation.
    Observed At: 2026-09-20T21:55:28Z
    Implementation Revision: 4f7cb9813c1f-dirty (CLI 4f7cb98)
    Expires At: 2027-03-19T21:55:28Z
    Scope: {"pattern":"pattern:relational-records"}

Formats

Next Actions