page:recipes:vendor portal:rails:private documents

Host vendor portal with Rails: private documents

Deploy a vendor portal built with Rails on Ample using the private document library 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, a private S3-compatible bucket holds objects with credentials delivered as encrypted environment variables. Verified on Rails: a role-to-document access model with negative tests (401 without identity, 403 for the wrong role) and a private-bucket round-trip for the allowed role (private=ok). Not separately tested: your identity integration and role assignments; treat the vendor portal-specific behavior as your application code.

Input Schema

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 the private document library: a role-to-document access model with negative tests.
  3. Wire object storage
    Create the bucket(s), then pass endpoint, region, bucket and keys as --env values.
  4. Deploy
    Run the synchronous deploy once and read the result.
  5. Verify
    Fetch the live URL and run your own checks.

Limitations

Cost Estimate

Next Actions

Evidence Summary

Example