## 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
- **env**: Encrypted environment variables (bucket credentials, secrets).
- **name**: App name.
- **path**: Project directory or ample.toml service.
- **release_command**: Migration command run before activation.

### 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
- Verified on the ruby-3.4 template at s-1vcpu-1gb with the example fixture; other sizes and versions are not verified.
- The vendor portal itself (identity integration and role assignments) is application code and hasn’t been tested separately.
- Apps auto-pause when idle and wake on the next request.

### Cost Estimate
- **Monthly Amount**: $10.0 USD
  - **Components**: 
    - App server (s-1vcpu-1gb): $5.0 
    - Managed PostgreSQL database (s-1vcpu-1gb): $5.0 
  
### Next Actions
- **Browse the catalog index**  
  - **ActionId**: browse-catalog  
- **Search published recipes**  
  - **ActionId**: search-recipes  
- **Prepare a side-effect-free deployment plan**  
  - **ActionId**: plan:page:recipes:vendor-portal:rails:private-documents

### Evidence Summary
- Rails pattern fixture deployed on Ample; checks passed for private-document-library and configuration-secrets.
- The same Rails app deployed with a --release-command migration; the marker was readable after activation.

### Example
- **Multi-pattern Rails app** whose private document library module was checked live.
