Skip to content

Commit 14c88f4

Browse files
AlexgodorojaAlex Godoroja
andauthored
catalogue: io.pilot.insforge v1.0.0 (#376)
catalogue: io.pilot.insforge v1.0.0 (rich, from R2) Co-authored-by: Alex Godoroja <alex@vulturelabs.io>
1 parent 6fa7ea9 commit 14c88f4

3 files changed

Lines changed: 158 additions & 1 deletion

File tree

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
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+
}

catalogue/catalogue.json

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -610,6 +610,40 @@
610610
"metadata_url": "https://raw.githubusercontent.com/pilot-protocol/pilotprotocol/main/catalogue/apps/io.pilot.agentphone/metadata.json",
611611
"metadata_sha256": "9099d15e6008aaf0506c4dc91607644b201a866f78f5db2343f85413de7a6ee1",
612612
"publisher": "ed25519:mvVzYABubZwOTzWWQA/TDbRLYkKzmD/x6k/w0nz+zHc="
613+
},
614+
{
615+
"id": "io.pilot.insforge",
616+
"version": "1.0.0",
617+
"description": "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.",
618+
"bundle_url": "https://pub-f09f9a4ea848491198d48e329ba030e3.r2.dev/bundles/io.pilot.insforge/1.0.0/io.pilot.insforge-1.0.0-linux-amd64.tar.gz",
619+
"bundle_sha256": "9e1d05248b99dd66e1482aeda23ece61b2b110601c7848e3fb716f4a79ba47b6",
620+
"display_name": "Insforge",
621+
"vendor": "InsForge",
622+
"categories": [],
623+
"bundle_size": 5113957,
624+
"source_url": "https://github.com/pilot-protocol/app-template/tree/main/submissions/io.pilot.insforge",
625+
"license": "",
626+
"metadata_url": "https://raw.githubusercontent.com/pilot-protocol/pilotprotocol/main/catalogue/apps/io.pilot.insforge/metadata.json",
627+
"metadata_sha256": "ec561a568909eae0b16524af0458a802325728b2103614fbf9b1b600334d1969",
628+
"bundles": {
629+
"linux/amd64": {
630+
"bundle_url": "https://pub-f09f9a4ea848491198d48e329ba030e3.r2.dev/bundles/io.pilot.insforge/1.0.0/io.pilot.insforge-1.0.0-linux-amd64.tar.gz",
631+
"bundle_sha256": "9e1d05248b99dd66e1482aeda23ece61b2b110601c7848e3fb716f4a79ba47b6"
632+
},
633+
"linux/arm64": {
634+
"bundle_url": "https://pub-f09f9a4ea848491198d48e329ba030e3.r2.dev/bundles/io.pilot.insforge/1.0.0/io.pilot.insforge-1.0.0-linux-arm64.tar.gz",
635+
"bundle_sha256": "84c0eaa5fa1870cbf40f73f184a7f83ea0965967d5088a7a0326314f1ec85d0b"
636+
},
637+
"darwin/amd64": {
638+
"bundle_url": "https://pub-f09f9a4ea848491198d48e329ba030e3.r2.dev/bundles/io.pilot.insforge/1.0.0/io.pilot.insforge-1.0.0-darwin-amd64.tar.gz",
639+
"bundle_sha256": "add93c823f74be7712add44d384b21bd76bbc2af6d6d0b8d0ae1860da6f456b2"
640+
},
641+
"darwin/arm64": {
642+
"bundle_url": "https://pub-f09f9a4ea848491198d48e329ba030e3.r2.dev/bundles/io.pilot.insforge/1.0.0/io.pilot.insforge-1.0.0-darwin-arm64.tar.gz",
643+
"bundle_sha256": "62320c247ae07187ed89ccec5de519bb1627489353877424f14c17a2729d2330"
644+
}
645+
},
646+
"publisher": "ed25519:W1qwuLpHlwdOlisnk7RdzP4zO2IbNKUFz7Saa69AgTA="
613647
}
614648
]
615649
}

catalogue/catalogue.json.sig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
zjuh59YUSuwetWmEVs3K/0A3v8gsQCRN2NjDW98UoSU8UCj2AGHPWOZg30ncUayLLDove9N7URsQmMqPSF3BDg==
1+
bUYNmQV4nz85UaQoaGro1hCZPAu3skb6JcnJyjbWGTEGbFXDscGZ4pmytai/40sAqhYfFFORLJnUT3yiKciNBg==

0 commit comments

Comments
 (0)