|
| 1 | +{ |
| 2 | + "schema_version": 1, |
| 3 | + "id": "io.pilot.insforge", |
| 4 | + "display_name": "Insforge", |
| 5 | + "tagline": "The agent-native cloud (an AWS for agents) as ONE Pilot app. insforge.signup provisions your OWN isolated InsForge backe", |
| 6 | + "description_md": "The agent-native cloud (an AWS for agents) as ONE Pilot app. insforge.signup provisions your OWN isolated InsForge backend in one call — no email, no browser: a dedicated Postgres database, authentication, S3-style storage, Deno edge functions, and a Model Gateway OpenRouter key seeded with $1 of AI credits. Pilot's broker mints and manages the account; every method then talks directly to your backend, authenticated as you. Free to provision — pay only for what your backend uses.", |
| 7 | + "vendor": { |
| 8 | + "name": "InsForge", |
| 9 | + "url": "https://insforge.dev", |
| 10 | + "contact": "info@insforge.dev", |
| 11 | + "agent_usage": "insforge.signup once (provisions your isolated backend, no email/browser), then drive Postgres, auth, storage, edge functions and the AI model gateway directly as yourself.", |
| 12 | + "capabilities": "database, auth, storage, edge-functions, ai-gateway, hosting", |
| 13 | + "publisher_pubkey": "ed25519:W1qwuLpHlwdOlisnk7RdzP4zO2IbNKUFz7Saa69AgTA=" |
| 14 | + }, |
| 15 | + "source_url": "https://github.com/pilot-protocol/app-template/tree/main/submissions/io.pilot.insforge", |
| 16 | + "license": "", |
| 17 | + "categories": [], |
| 18 | + "size": { |
| 19 | + "bundle_bytes": 5113957 |
| 20 | + }, |
| 21 | + "methods": [ |
| 22 | + { |
| 23 | + "name": "insforge.signup", |
| 24 | + "summary": "Provision your OWN isolated InsForge backend in ONE call — no email, no browser, no human step. This signs a keyless request to Pilot's InsForge signup broker, which mints a fresh InsForge project under Pilot's managed account and returns its access key + backend URL. The adapter caches {api_key, backend_url} to $APP/secrets.json, and from then on EVERY other insforge.* method talks directly to YOUR backend, authenticated as you. You get a dedicated Postgres database, authentication, S3-style storage, edge functions, and a Model Gateway OpenRouter key seeded with $1 of AI credits. Idempotent: the broker provisions at most one project per Pilot identity, so a repeat call (or a fresh install) returns the SAME backend. Run this ONCE before any other method. FREE to provision — you pay only for the resources your backend actually uses (see per-method costs and insforge.help). Retrieve your backend URL + key any time via insforge.account. Takes no arguments." |
| 25 | + }, |
| 26 | + { |
| 27 | + "name": "insforge.account", |
| 28 | + "summary": "Retrieve your provisioned InsForge backend — its backend_url, your api_key, and project id — plus a signed_up flag. Local, instant, FREE (reads $APP/secrets.json; no backend call). Use it to confirm you're provisioned or to read your key/URL (e.g. to call the backend from your own code). If signed_up is false, call insforge.signup first." |
| 29 | + }, |
| 30 | + { |
| 31 | + "name": "insforge.metadata", |
| 32 | + "summary": "Get your backend's full configuration — auth providers/SMTP, database tables, storage buckets, edge functions, realtime, and AI models — in one call. FREE (control-plane / metadata)." |
| 33 | + }, |
| 34 | + { |
| 35 | + "name": "insforge.db_list_tables", |
| 36 | + "summary": "List all database tables with their schemas (columns, types, constraints). FREE (control-plane / metadata)." |
| 37 | + }, |
| 38 | + { |
| 39 | + "name": "insforge.db_create_table", |
| 40 | + "summary": "Create a Postgres table. Body: {tableName, columns:[{columnName, type, isNullable, isUnique, defaultValue?}]} — type is one of string, integer, float, boolean, datetime, date, uuid, json. An id (uuid) + createdAt/updatedAt are added automatically. Rows count toward Postgres storage (500 MB free, then $0.125/GB); reads toward bandwidth (5 GB free, then $0.09/GB)." |
| 41 | + }, |
| 42 | + { |
| 43 | + "name": "insforge.db_query", |
| 44 | + "summary": "Query records from a table with PostgREST-style filtering, sorting, pagination. Path: table name. Query params: limit (1-1000, default 100), offset, order (e.g. createdAt.desc), select (comma columns), and any {field}=<op>.<value> filter (op: eq, neq, gt, gte, lt, lte, like, ilike, in, is). Counts toward bandwidth (5 GB free, then $0.09/GB)." |
| 45 | + }, |
| 46 | + { |
| 47 | + "name": "insforge.db_insert", |
| 48 | + "summary": "Insert one or more records into a table. Path: table name. Body: a JSON array of row objects (e.g. [{\"title\":\"hi\"}]) — always an array, even for one row. Returns the inserted rows with generated ids. Note: just after db_create_table, wait ~3s before the first insert (the database reloads its schema cache after DDL; an immediate insert can 404). Rows count toward Postgres storage (500 MB free, then $0.125/GB); reads toward bandwidth (5 GB free, then $0.09/GB)." |
| 49 | + }, |
| 50 | + { |
| 51 | + "name": "insforge.db_update", |
| 52 | + "summary": "Update records matching PostgREST filters. Path: table name. Pass filter(s) as query params ({field}=eq.<value>) and the new column values in the body. Returns the updated rows. Rows count toward Postgres storage (500 MB free, then $0.125/GB); reads toward bandwidth (5 GB free, then $0.09/GB)." |
| 53 | + }, |
| 54 | + { |
| 55 | + "name": "insforge.db_delete", |
| 56 | + "summary": "Delete records matching PostgREST filters. Path: table name. Pass filter(s) as query params ({field}=eq.<value>). Returns the deleted rows. Rows count toward Postgres storage (500 MB free, then $0.125/GB); reads toward bandwidth (5 GB free, then $0.09/GB)." |
| 57 | + }, |
| 58 | + { |
| 59 | + "name": "insforge.db_sql", |
| 60 | + "summary": "Run raw parameterized SQL against your Postgres database. Body: {query, params?}. Powerful — use for joins, aggregates, DDL, migrations. Rows count toward Postgres storage (500 MB free, then $0.125/GB); reads toward bandwidth (5 GB free, then $0.09/GB)." |
| 61 | + }, |
| 62 | + { |
| 63 | + "name": "insforge.storage_list_buckets", |
| 64 | + "summary": "List your storage buckets. FREE (control-plane / metadata)." |
| 65 | + }, |
| 66 | + { |
| 67 | + "name": "insforge.storage_create_bucket", |
| 68 | + "summary": "Create a storage bucket. Body: {bucketName, isPublic}. A public bucket serves objects without auth; a private one requires the key. FREE (control-plane / metadata)." |
| 69 | + }, |
| 70 | + { |
| 71 | + "name": "insforge.storage_list_objects", |
| 72 | + "summary": "List objects in a bucket (paginated). Path: bucket name. Query: limit, offset, prefix. Counts toward bandwidth (5 GB free, then $0.09/GB)." |
| 73 | + }, |
| 74 | + { |
| 75 | + "name": "insforge.storage_download", |
| 76 | + "summary": "Download an object (returns its content). Path: bucket + object key. Counts toward bandwidth (5 GB free, then $0.09/GB)." |
| 77 | + }, |
| 78 | + { |
| 79 | + "name": "insforge.storage_delete", |
| 80 | + "summary": "Delete an object. Path: bucket + object key. FREE (control-plane / metadata)." |
| 81 | + }, |
| 82 | + { |
| 83 | + "name": "insforge.auth_config", |
| 84 | + "summary": "Get your backend's auth configuration (enabled OAuth providers, JWT settings, SMTP). FREE (control-plane / metadata)." |
| 85 | + }, |
| 86 | + { |
| 87 | + "name": "insforge.auth_list_users", |
| 88 | + "summary": "List the end-users registered in your backend's auth (paginated). Query: limit, offset. Auth users count toward MAU (50,000 free, then $0.00325 per monthly active user)." |
| 89 | + }, |
| 90 | + { |
| 91 | + "name": "insforge.functions_list", |
| 92 | + "summary": "List your deployed edge functions (Deno/TypeScript) and the runtime status. FREE (control-plane / metadata)." |
| 93 | + }, |
| 94 | + { |
| 95 | + "name": "insforge.function_invoke", |
| 96 | + "summary": "Invoke a deployed edge function by slug. Path: function slug. Body: the JSON payload passed to the function. Each invocation counts toward edge-function calls (100,000 free, then $0.01 per 1,000)." |
| 97 | + }, |
| 98 | + { |
| 99 | + "name": "insforge.ai_gateway_key", |
| 100 | + "summary": "Get your project's Model Gateway OpenRouter API key (sk-or-...). InsForge provisions it seeded with $1 of AI credits; call it directly against https://openrouter.ai/api/v1 with any OpenAI-compatible SDK (models like openai/gpt-4o, anthropic/claude-3.5-haiku). Returns the project's Model Gateway OpenRouter key, seeded with $1 of AI credits; usage bills per OpenRouter token pricing on that key." |
| 101 | + }, |
| 102 | + { |
| 103 | + "name": "insforge.secrets_list", |
| 104 | + "summary": "List your backend's secrets/keys (names + metadata; values are not returned). FREE (control-plane / metadata)." |
| 105 | + }, |
| 106 | + { |
| 107 | + "name": "insforge.get", |
| 108 | + "summary": "Escape hatch: GET any backend API path under /api. Path param is the sub-path (e.g. \"database/tables\", \"storage/config\"); extra fields become query params. Covers endpoints not given a dedicated method. Cost depends on the endpoint — see insforge.help." |
| 109 | + }, |
| 110 | + { |
| 111 | + "name": "insforge.post", |
| 112 | + "summary": "Escape hatch: POST any backend API path under /api. Path param is the sub-path; the rest of the payload is sent as the JSON body. Covers endpoints not given a dedicated method. Cost depends on the endpoint." |
| 113 | + } |
| 114 | + ], |
| 115 | + "changelog": [ |
| 116 | + { |
| 117 | + "version": "1.0.0", |
| 118 | + "notes": [ |
| 119 | + "Published v 1.0.0" |
| 120 | + ] |
| 121 | + } |
| 122 | + ] |
| 123 | +} |
0 commit comments