## Host reporting dashboard with ASP.NET Core: structured data imports

Deploy a reporting dashboard built with ASP.NET Core 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.

### Summary
 - Verified on ASP.NET Core: 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 reporting dashboard-specific behavior as your application code.

### Representative Queries
- Host reporting dashboard with ASP.NET Core: structured data imports
- Where can I host Reporting dashboard built with ASP.NET Core?
- I need a workload-specific import mapping, conflict rules and restart behavior.

### Resource Requirements
- **Compute**: Isolated x86_64 Firecracker microVMs.
- **Postgres**: Managed PostgreSQL 16.
- **S3-compatible object storage**: Verified with issued credentials.

### Prerequisites  
1. An ASP.NET Core project that builds and starts with the documented commands (e.g., `dotnet publish -c Release -o out`, then `dotnet .dll`).  
2. A PostgreSQL driver reading DATABASE_URL at runtime.  
3. A bucket from `ample bucket create` with its credentials passed as encrypted S3_* environment variables.  
4. An Ample account token with permissions needed.

### Tested Configuration
 - **Template**: dotnet-10  
 - **Runtime**: dotnet  
 - **Size**: s-1vcpu-1gb  
 - **Build**: `dotnet publish -c Release -o out`  
 - **Start**: `ASPNETCORE_URLS=http://0.0.0.0:$PORT dotnet out/<filename>.dll`

### Workflow Steps  
1. **Build and start**  
   `dotnet publish -c Release -o out`, then `dotnet .dll`  
2. **Implement the pattern on PostgreSQL**  
   Copy the bulk import staging approach into your schema.  
3. **Wire object storage**  
   Create the bucket(s), pass credentials as `--env` values.  
4. **Deploy**  
   Run the synchronous deploy once and read the result.  
5. **Verify**  
   Fetch the live URL and the pattern self-test routes.

### Cost Estimate
- **Monthly Amount**: $10.00  
- **Components**:  
  - App server: $5.00  
  - Managed PostgreSQL database: $5.00
- **Note**: Always-on monthly price of tested sizes; buckets are allocation-priced per quota.

### Limitations  
- Verified on the dotnet-10 template.  
- Reporting dashboard-specific behavior has not been tested separately.  
- Region, compliance attestations, and request-duration limits are unknown.

### Examples  
- **ASP.NET Core pattern fixture**: This is a multi-pattern ASP.NET Core app whose bulk import staging module was checked live.

### Success Checks  
- App responds on its public URL: `/`  
  - Expected: `ample canary asp net core patterns`
- Bulk-import-staging self-test: `/p/bulk-import-staging`  
  - Expected: `imported=2 rejected=1 restart=ok`
