page:recipes:approval workflow:laravel:csv imports

Host approval workflow with Laravel: CSV imports

Deploy a approval workflow built with Laravel on Ample using the bulk import staging 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 Laravel: a CSV staged as an object, row-level validation with per-row errors recorded, and a restart-safe import keyed by import id (imported=2 rejected=1 restart=ok). Not separately tested: your import format, mapping and conflict rules; treat the approval workflow-specific behavior as your application code.

Representative Queries

Prerequisites

Workflow Steps

  1. Build and start
    composer install --no-dev from composer.lock, then FrankenPHP serving public/ (php-server with the index.php fallback) reading PORT on the php-8.5 template. The server must bind 0.0.0.0 on PORT.

  2. Implement the pattern on PostgreSQL
    The fixture's module implements bulk import staging: a CSV staged as an object, row-level validation with per-row errors recorded, and a restart-safe import keyed by import id (imported=2 rejected=1 restart=ok). Copy the approach into your schema; keep migrations idempotent and run them with --release-command.

  3. Wire object storage
    Create the bucket(s), then pass endpoint, region, bucket and keys as --env values. Use path-style addressing. Keep private data in an unpublished bucket.

  4. 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 --env S3_ENDPOINT=... --env S3_REGION=... --env S3_BUCKET=... --env S3_ACCESS_KEY_ID=... --env S3_SECRET_ACCESS_KEY=...

  5. Verify
    Fetch the live URL and the pattern self-test route(s) (/p/bulk-import-staging) from the example; then run your own checks. On failure read ample logs --kind build then --kind runtime.
    ample logs --kind build

Success Checks

Cost Estimate

Limitations

Next Actions

1. Browse the catalog index
2. Search published recipes by intent, stack and constraints
3. Prepare a side-effect-free deployment plan for an authorized project
4. Read the existing agent authentication setup
5. Browse Approval workflow
6. Browse Laravel
7. Browse Bulk import staging
8. Browse Deploy web app

Examples