SPB Git forge

spb/fetcha

Public
11commits 1branches 0releases
1.5 MBsize
maindefault branch
16 days agolast push
TypeScript 97.5% SQL 1.4% Python 0.8%
76.4 KB · 3,015 lines json
Raw Blame History
1{2  "id": "faa23eec-a36e-40bd-b9e5-570b18c400ec",3  "prevId": "00000000-0000-0000-0000-000000000000",4  "version": "7",5  "dialect": "postgresql",6  "tables": {7    "public.abuse_events": {8      "name": "abuse_events",9      "schema": "",10      "columns": {11        "id": {12          "name": "id",13          "type": "text",14          "primaryKey": true,15          "notNull": true16        },17        "organization_id": {18          "name": "organization_id",19          "type": "text",20          "primaryKey": false,21          "notNull": false22        },23        "project_id": {24          "name": "project_id",25          "type": "text",26          "primaryKey": false,27          "notNull": false28        },29        "request_id": {30          "name": "request_id",31          "type": "text",32          "primaryKey": false,33          "notNull": false34        },35        "kind": {36          "name": "kind",37          "type": "text",38          "primaryKey": false,39          "notNull": true40        },41        "severity": {42          "name": "severity",43          "type": "text",44          "primaryKey": false,45          "notNull": true,46          "default": "'low'"47        },48        "detail": {49          "name": "detail",50          "type": "text",51          "primaryKey": false,52          "notNull": false53        },54        "resolved": {55          "name": "resolved",56          "type": "boolean",57          "primaryKey": false,58          "notNull": true,59          "default": false60        },61        "created_at": {62          "name": "created_at",63          "type": "timestamp with time zone",64          "primaryKey": false,65          "notNull": true,66          "default": "now()"67        }68      },69      "indexes": {70        "abuse_events_org_idx": {71          "name": "abuse_events_org_idx",72          "columns": [73            {74              "expression": "organization_id",75              "isExpression": false,76              "asc": true,77              "nulls": "last"78            }79          ],80          "isUnique": false,81          "concurrently": false,82          "method": "btree",83          "with": {}84        }85      },86      "foreignKeys": {87        "abuse_events_organization_id_organizations_id_fk": {88          "name": "abuse_events_organization_id_organizations_id_fk",89          "tableFrom": "abuse_events",90          "tableTo": "organizations",91          "columnsFrom": [92            "organization_id"93          ],94          "columnsTo": [95            "id"96          ],97          "onDelete": "cascade",98          "onUpdate": "no action"99        }100      },101      "compositePrimaryKeys": {},102      "uniqueConstraints": {},103      "policies": {},104      "checkConstraints": {},105      "isRLSEnabled": false106    },107    "public.accounts": {108      "name": "accounts",109      "schema": "",110      "columns": {111        "id": {112          "name": "id",113          "type": "text",114          "primaryKey": true,115          "notNull": true116        },117        "account_id": {118          "name": "account_id",119          "type": "text",120          "primaryKey": false,121          "notNull": true122        },123        "provider_id": {124          "name": "provider_id",125          "type": "text",126          "primaryKey": false,127          "notNull": true128        },129        "user_id": {130          "name": "user_id",131          "type": "text",132          "primaryKey": false,133          "notNull": true134        },135        "access_token": {136          "name": "access_token",137          "type": "text",138          "primaryKey": false,139          "notNull": false140        },141        "refresh_token": {142          "name": "refresh_token",143          "type": "text",144          "primaryKey": false,145          "notNull": false146        },147        "id_token": {148          "name": "id_token",149          "type": "text",150          "primaryKey": false,151          "notNull": false152        },153        "access_token_expires_at": {154          "name": "access_token_expires_at",155          "type": "timestamp with time zone",156          "primaryKey": false,157          "notNull": false158        },159        "refresh_token_expires_at": {160          "name": "refresh_token_expires_at",161          "type": "timestamp with time zone",162          "primaryKey": false,163          "notNull": false164        },165        "scope": {166          "name": "scope",167          "type": "text",168          "primaryKey": false,169          "notNull": false170        },171        "password": {172          "name": "password",173          "type": "text",174          "primaryKey": false,175          "notNull": false176        },177        "created_at": {178          "name": "created_at",179          "type": "timestamp with time zone",180          "primaryKey": false,181          "notNull": true,182          "default": "now()"183        },184        "updated_at": {185          "name": "updated_at",186          "type": "timestamp with time zone",187          "primaryKey": false,188          "notNull": true,189          "default": "now()"190        }191      },192      "indexes": {193        "accounts_user_idx": {194          "name": "accounts_user_idx",195          "columns": [196            {197              "expression": "user_id",198              "isExpression": false,199              "asc": true,200              "nulls": "last"201            }202          ],203          "isUnique": false,204          "concurrently": false,205          "method": "btree",206          "with": {}207        }208      },209      "foreignKeys": {210        "accounts_user_id_users_id_fk": {211          "name": "accounts_user_id_users_id_fk",212          "tableFrom": "accounts",213          "tableTo": "users",214          "columnsFrom": [215            "user_id"216          ],217          "columnsTo": [218            "id"219          ],220          "onDelete": "cascade",221          "onUpdate": "no action"222        }223      },224      "compositePrimaryKeys": {},225      "uniqueConstraints": {},226      "policies": {},227      "checkConstraints": {},228      "isRLSEnabled": false229    },230    "public.api_keys": {231      "name": "api_keys",232      "schema": "",233      "columns": {234        "id": {235          "name": "id",236          "type": "text",237          "primaryKey": true,238          "notNull": true239        },240        "organization_id": {241          "name": "organization_id",242          "type": "text",243          "primaryKey": false,244          "notNull": true245        },246        "project_id": {247          "name": "project_id",248          "type": "text",249          "primaryKey": false,250          "notNull": true251        },252        "created_by_user_id": {253          "name": "created_by_user_id",254          "type": "text",255          "primaryKey": false,256          "notNull": false257        },258        "name": {259          "name": "name",260          "type": "text",261          "primaryKey": false,262          "notNull": true263        },264        "key_hash": {265          "name": "key_hash",266          "type": "text",267          "primaryKey": false,268          "notNull": true269        },270        "key_prefix": {271          "name": "key_prefix",272          "type": "text",273          "primaryKey": false,274          "notNull": true275        },276        "last4": {277          "name": "last4",278          "type": "text",279          "primaryKey": false,280          "notNull": true281        },282        "mode": {283          "name": "mode",284          "type": "text",285          "primaryKey": false,286          "notNull": true,287          "default": "'live'"288        },289        "scopes": {290          "name": "scopes",291          "type": "jsonb",292          "primaryKey": false,293          "notNull": true,294          "default": "'[\"fetch:execute\",\"sessions:write\",\"usage:read\"]'::jsonb"295        },296        "expires_at": {297          "name": "expires_at",298          "type": "timestamp with time zone",299          "primaryKey": false,300          "notNull": false301        },302        "last_used_at": {303          "name": "last_used_at",304          "type": "timestamp with time zone",305          "primaryKey": false,306          "notNull": false307        },308        "revoked_at": {309          "name": "revoked_at",310          "type": "timestamp with time zone",311          "primaryKey": false,312          "notNull": false313        },314        "rotated_from_id": {315          "name": "rotated_from_id",316          "type": "text",317          "primaryKey": false,318          "notNull": false319        },320        "created_at": {321          "name": "created_at",322          "type": "timestamp with time zone",323          "primaryKey": false,324          "notNull": true,325          "default": "now()"326        }327      },328      "indexes": {329        "api_keys_hash_uq": {330          "name": "api_keys_hash_uq",331          "columns": [332            {333              "expression": "key_hash",334              "isExpression": false,335              "asc": true,336              "nulls": "last"337            }338          ],339          "isUnique": true,340          "concurrently": false,341          "method": "btree",342          "with": {}343        },344        "api_keys_project_idx": {345          "name": "api_keys_project_idx",346          "columns": [347            {348              "expression": "project_id",349              "isExpression": false,350              "asc": true,351              "nulls": "last"352            }353          ],354          "isUnique": false,355          "concurrently": false,356          "method": "btree",357          "with": {}358        },359        "api_keys_org_idx": {360          "name": "api_keys_org_idx",361          "columns": [362            {363              "expression": "organization_id",364              "isExpression": false,365              "asc": true,366              "nulls": "last"367            }368          ],369          "isUnique": false,370          "concurrently": false,371          "method": "btree",372          "with": {}373        }374      },375      "foreignKeys": {376        "api_keys_organization_id_organizations_id_fk": {377          "name": "api_keys_organization_id_organizations_id_fk",378          "tableFrom": "api_keys",379          "tableTo": "organizations",380          "columnsFrom": [381            "organization_id"382          ],383          "columnsTo": [384            "id"385          ],386          "onDelete": "cascade",387          "onUpdate": "no action"388        },389        "api_keys_project_id_projects_id_fk": {390          "name": "api_keys_project_id_projects_id_fk",391          "tableFrom": "api_keys",392          "tableTo": "projects",393          "columnsFrom": [394            "project_id"395          ],396          "columnsTo": [397            "id"398          ],399          "onDelete": "cascade",400          "onUpdate": "no action"401        },402        "api_keys_created_by_user_id_users_id_fk": {403          "name": "api_keys_created_by_user_id_users_id_fk",404          "tableFrom": "api_keys",405          "tableTo": "users",406          "columnsFrom": [407            "created_by_user_id"408          ],409          "columnsTo": [410            "id"411          ],412          "onDelete": "set null",413          "onUpdate": "no action"414        }415      },416      "compositePrimaryKeys": {},417      "uniqueConstraints": {},418      "policies": {},419      "checkConstraints": {},420      "isRLSEnabled": false421    },422    "public.audit_logs": {423      "name": "audit_logs",424      "schema": "",425      "columns": {426        "id": {427          "name": "id",428          "type": "text",429          "primaryKey": true,430          "notNull": true431        },432        "organization_id": {433          "name": "organization_id",434          "type": "text",435          "primaryKey": false,436          "notNull": false437        },438        "user_id": {439          "name": "user_id",440          "type": "text",441          "primaryKey": false,442          "notNull": false443        },444        "action": {445          "name": "action",446          "type": "text",447          "primaryKey": false,448          "notNull": true449        },450        "target": {451          "name": "target",452          "type": "text",453          "primaryKey": false,454          "notNull": false455        },456        "metadata": {457          "name": "metadata",458          "type": "jsonb",459          "primaryKey": false,460          "notNull": false461        },462        "ip_address": {463          "name": "ip_address",464          "type": "text",465          "primaryKey": false,466          "notNull": false467        },468        "user_agent": {469          "name": "user_agent",470          "type": "text",471          "primaryKey": false,472          "notNull": false473        },474        "created_at": {475          "name": "created_at",476          "type": "timestamp with time zone",477          "primaryKey": false,478          "notNull": true,479          "default": "now()"480        }481      },482      "indexes": {483        "audit_logs_org_created_idx": {484          "name": "audit_logs_org_created_idx",485          "columns": [486            {487              "expression": "organization_id",488              "isExpression": false,489              "asc": true,490              "nulls": "last"491            },492            {493              "expression": "created_at",494              "isExpression": false,495              "asc": true,496              "nulls": "last"497            }498          ],499          "isUnique": false,500          "concurrently": false,501          "method": "btree",502          "with": {}503        },504        "audit_logs_user_idx": {505          "name": "audit_logs_user_idx",506          "columns": [507            {508              "expression": "user_id",509              "isExpression": false,510              "asc": true,511              "nulls": "last"512            }513          ],514          "isUnique": false,515          "concurrently": false,516          "method": "btree",517          "with": {}518        }519      },520      "foreignKeys": {521        "audit_logs_organization_id_organizations_id_fk": {522          "name": "audit_logs_organization_id_organizations_id_fk",523          "tableFrom": "audit_logs",524          "tableTo": "organizations",525          "columnsFrom": [526            "organization_id"527          ],528          "columnsTo": [529            "id"530          ],531          "onDelete": "cascade",532          "onUpdate": "no action"533        },534        "audit_logs_user_id_users_id_fk": {535          "name": "audit_logs_user_id_users_id_fk",536          "tableFrom": "audit_logs",537          "tableTo": "users",538          "columnsFrom": [539            "user_id"540          ],541          "columnsTo": [542            "id"543          ],544          "onDelete": "set null",545          "onUpdate": "no action"546        }547      },548      "compositePrimaryKeys": {},549      "uniqueConstraints": {},550      "policies": {},551      "checkConstraints": {},552      "isRLSEnabled": false553    },554    "public.billing_events": {555      "name": "billing_events",556      "schema": "",557      "columns": {558        "id": {559          "name": "id",560          "type": "text",561          "primaryKey": true,562          "notNull": true563        },564        "organization_id": {565          "name": "organization_id",566          "type": "text",567          "primaryKey": false,568          "notNull": false569        },570        "type": {571          "name": "type",572          "type": "text",573          "primaryKey": false,574          "notNull": true575        },576        "stripe_event_id": {577          "name": "stripe_event_id",578          "type": "text",579          "primaryKey": false,580          "notNull": false581        },582        "payload": {583          "name": "payload",584          "type": "jsonb",585          "primaryKey": false,586          "notNull": false587        },588        "created_at": {589          "name": "created_at",590          "type": "timestamp with time zone",591          "primaryKey": false,592          "notNull": true,593          "default": "now()"594        }595      },596      "indexes": {597        "billing_events_org_idx": {598          "name": "billing_events_org_idx",599          "columns": [600            {601              "expression": "organization_id",602              "isExpression": false,603              "asc": true,604              "nulls": "last"605            }606          ],607          "isUnique": false,608          "concurrently": false,609          "method": "btree",610          "with": {}611        }612      },613      "foreignKeys": {614        "billing_events_organization_id_organizations_id_fk": {615          "name": "billing_events_organization_id_organizations_id_fk",616          "tableFrom": "billing_events",617          "tableTo": "organizations",618          "columnsFrom": [619            "organization_id"620          ],621          "columnsTo": [622            "id"623          ],624          "onDelete": "set null",625          "onUpdate": "no action"626        }627      },628      "compositePrimaryKeys": {},629      "uniqueConstraints": {},630      "policies": {},631      "checkConstraints": {},632      "isRLSEnabled": false633    },634    "public.domain_profiles": {635      "name": "domain_profiles",636      "schema": "",637      "columns": {638        "domain": {639          "name": "domain",640          "type": "text",641          "primaryKey": true,642          "notNull": true643        },644        "preferred_network": {645          "name": "preferred_network",646          "type": "text",647          "primaryKey": false,648          "notNull": false649        },650        "preferred_provider": {651          "name": "preferred_provider",652          "type": "text",653          "primaryKey": false,654          "notNull": false655        },656        "requests": {657          "name": "requests",658          "type": "integer",659          "primaryKey": false,660          "notNull": true,661          "default": 0662        },663        "successes": {664          "name": "successes",665          "type": "integer",666          "primaryKey": false,667          "notNull": true,668          "default": 0669        },670        "blocks": {671          "name": "blocks",672          "type": "integer",673          "primaryKey": false,674          "notNull": true,675          "default": 0676        },677        "captchas": {678          "name": "captchas",679          "type": "integer",680          "primaryKey": false,681          "notNull": true,682          "default": 0683        },684        "browser_required": {685          "name": "browser_required",686          "type": "integer",687          "primaryKey": false,688          "notNull": true,689          "default": 0690        },691        "avg_latency_ms": {692          "name": "avg_latency_ms",693          "type": "double precision",694          "primaryKey": false,695          "notNull": true,696          "default": 0697        },698        "route_stats": {699          "name": "route_stats",700          "type": "jsonb",701          "primaryKey": false,702          "notNull": true,703          "default": "'{}'::jsonb"704        },705        "policy": {706          "name": "policy",707          "type": "jsonb",708          "primaryKey": false,709          "notNull": false710        },711        "last_seen_at": {712          "name": "last_seen_at",713          "type": "timestamp with time zone",714          "primaryKey": false,715          "notNull": true,716          "default": "now()"717        },718        "updated_at": {719          "name": "updated_at",720          "type": "timestamp with time zone",721          "primaryKey": false,722          "notNull": true,723          "default": "now()"724        }725      },726      "indexes": {},727      "foreignKeys": {},728      "compositePrimaryKeys": {},729      "uniqueConstraints": {},730      "policies": {},731      "checkConstraints": {},732      "isRLSEnabled": false733    },734    "public.feature_flags": {735      "name": "feature_flags",736      "schema": "",737      "columns": {738        "key": {739          "name": "key",740          "type": "text",741          "primaryKey": true,742          "notNull": true743        },744        "enabled": {745          "name": "enabled",746          "type": "boolean",747          "primaryKey": false,748          "notNull": true,749          "default": false750        },751        "description": {752          "name": "description",753          "type": "text",754          "primaryKey": false,755          "notNull": false756        },757        "plans": {758          "name": "plans",759          "type": "jsonb",760          "primaryKey": false,761          "notNull": false762        },763        "organization_ids": {764          "name": "organization_ids",765          "type": "jsonb",766          "primaryKey": false,767          "notNull": false768        },769        "updated_at": {770          "name": "updated_at",771          "type": "timestamp with time zone",772          "primaryKey": false,773          "notNull": true,774          "default": "now()"775        }776      },777      "indexes": {},778      "foreignKeys": {},779      "compositePrimaryKeys": {},780      "uniqueConstraints": {},781      "policies": {},782      "checkConstraints": {},783      "isRLSEnabled": false784    },785    "public.fetch_requests": {786      "name": "fetch_requests",787      "schema": "",788      "columns": {789        "id": {790          "name": "id",791          "type": "text",792          "primaryKey": true,793          "notNull": true794        },795        "organization_id": {796          "name": "organization_id",797          "type": "text",798          "primaryKey": false,799          "notNull": true800        },801        "project_id": {802          "name": "project_id",803          "type": "text",804          "primaryKey": false,805          "notNull": true806        },807        "api_key_id": {808          "name": "api_key_id",809          "type": "text",810          "primaryKey": false,811          "notNull": false812        },813        "source": {814          "name": "source",815          "type": "text",816          "primaryKey": false,817          "notNull": true,818          "default": "'api'"819        },820        "url": {821          "name": "url",822          "type": "text",823          "primaryKey": false,824          "notNull": true825        },826        "final_url": {827          "name": "final_url",828          "type": "text",829          "primaryKey": false,830          "notNull": false831        },832        "domain": {833          "name": "domain",834          "type": "text",835          "primaryKey": false,836          "notNull": true837        },838        "method": {839          "name": "method",840          "type": "text",841          "primaryKey": false,842          "notNull": true,843          "default": "'GET'"844        },845        "requested_network": {846          "name": "requested_network",847          "type": "text",848          "primaryKey": false,849          "notNull": true,850          "default": "'auto'"851        },852        "network": {853          "name": "network",854          "type": "text",855          "primaryKey": false,856          "notNull": false857        },858        "country": {859          "name": "country",860          "type": "text",861          "primaryKey": false,862          "notNull": false863        },864        "region": {865          "name": "region",866          "type": "text",867          "primaryKey": false,868          "notNull": false869        },870        "city": {871          "name": "city",872          "type": "text",873          "primaryKey": false,874          "notNull": false875        },876        "session_id": {877          "name": "session_id",878          "type": "text",879          "primaryKey": false,880          "notNull": false881        },882        "browser": {883          "name": "browser",884          "type": "boolean",885          "primaryKey": false,886          "notNull": true,887          "default": false888        },889        "format": {890          "name": "format",891          "type": "text",892          "primaryKey": false,893          "notNull": true,894          "default": "'html'"895        },896        "status": {897          "name": "status",898          "type": "text",899          "primaryKey": false,900          "notNull": true,901          "default": "'pending'"902        },903        "http_status": {904          "name": "http_status",905          "type": "integer",906          "primaryKey": false,907          "notNull": false908        },909        "error_code": {910          "name": "error_code",911          "type": "text",912          "primaryKey": false,913          "notNull": false914        },915        "error_message": {916          "name": "error_message",917          "type": "text",918          "primaryKey": false,919          "notNull": false920        },921        "attempts": {922          "name": "attempts",923          "type": "integer",924          "primaryKey": false,925          "notNull": true,926          "default": 0927        },928        "latency_ms": {929          "name": "latency_ms",930          "type": "integer",931          "primaryKey": false,932          "notNull": false933        },934        "bytes_in": {935          "name": "bytes_in",936          "type": "bigint",937          "primaryKey": false,938          "notNull": true,939          "default": 0940        },941        "bytes_out": {942          "name": "bytes_out",943          "type": "bigint",944          "primaryKey": false,945          "notNull": true,946          "default": 0947        },948        "cost_usd": {949          "name": "cost_usd",950          "type": "double precision",951          "primaryKey": false,952          "notNull": true,953          "default": 0954        },955        "price_usd": {956          "name": "price_usd",957          "type": "double precision",958          "primaryKey": false,959          "notNull": true,960          "default": 0961        },962        "cached": {963          "name": "cached",964          "type": "boolean",965          "primaryKey": false,966          "notNull": true,967          "default": false968        },969        "request_headers": {970          "name": "request_headers",971          "type": "jsonb",972          "primaryKey": false,973          "notNull": false974        },975        "response_headers": {976          "name": "response_headers",977          "type": "jsonb",978          "primaryKey": false,979          "notNull": false980        },981        "timing": {982          "name": "timing",983          "type": "jsonb",984          "primaryKey": false,985          "notNull": false986        },987        "client_ip": {988          "name": "client_ip",989          "type": "text",990          "primaryKey": false,991          "notNull": false992        },993        "user_agent": {994          "name": "user_agent",995          "type": "text",996          "primaryKey": false,997          "notNull": false998        },999        "created_at": {1000          "name": "created_at",1001          "type": "timestamp with time zone",1002          "primaryKey": false,1003          "notNull": true,1004          "default": "now()"1005        },1006        "completed_at": {1007          "name": "completed_at",1008          "type": "timestamp with time zone",1009          "primaryKey": false,1010          "notNull": false1011        }1012      },1013      "indexes": {1014        "fetch_requests_project_created_idx": {1015          "name": "fetch_requests_project_created_idx",1016          "columns": [1017            {1018              "expression": "project_id",1019              "isExpression": false,1020              "asc": true,1021              "nulls": "last"1022            },1023            {1024              "expression": "created_at",1025              "isExpression": false,1026              "asc": true,1027              "nulls": "last"1028            }1029          ],1030          "isUnique": false,1031          "concurrently": false,1032          "method": "btree",1033          "with": {}1034        },1035        "fetch_requests_org_created_idx": {1036          "name": "fetch_requests_org_created_idx",1037          "columns": [1038            {1039              "expression": "organization_id",1040              "isExpression": false,1041              "asc": true,1042              "nulls": "last"1043            },1044            {1045              "expression": "created_at",1046              "isExpression": false,1047              "asc": true,1048              "nulls": "last"1049            }1050          ],1051          "isUnique": false,1052          "concurrently": false,1053          "method": "btree",1054          "with": {}1055        },1056        "fetch_requests_domain_idx": {1057          "name": "fetch_requests_domain_idx",1058          "columns": [1059            {1060              "expression": "domain",1061              "isExpression": false,1062              "asc": true,1063              "nulls": "last"1064            }1065          ],1066          "isUnique": false,1067          "concurrently": false,1068          "method": "btree",1069          "with": {}1070        },1071        "fetch_requests_created_idx": {1072          "name": "fetch_requests_created_idx",1073          "columns": [1074            {1075              "expression": "created_at",1076              "isExpression": false,1077              "asc": true,1078              "nulls": "last"1079            }1080          ],1081          "isUnique": false,1082          "concurrently": false,1083          "method": "btree",1084          "with": {}1085        }1086      },1087      "foreignKeys": {1088        "fetch_requests_organization_id_organizations_id_fk": {1089          "name": "fetch_requests_organization_id_organizations_id_fk",1090          "tableFrom": "fetch_requests",1091          "tableTo": "organizations",1092          "columnsFrom": [1093            "organization_id"1094          ],1095          "columnsTo": [1096            "id"1097          ],1098          "onDelete": "cascade",1099          "onUpdate": "no action"1100        },1101        "fetch_requests_project_id_projects_id_fk": {1102          "name": "fetch_requests_project_id_projects_id_fk",1103          "tableFrom": "fetch_requests",1104          "tableTo": "projects",1105          "columnsFrom": [1106            "project_id"1107          ],1108          "columnsTo": [1109            "id"1110          ],1111          "onDelete": "cascade",1112          "onUpdate": "no action"1113        },1114        "fetch_requests_api_key_id_api_keys_id_fk": {1115          "name": "fetch_requests_api_key_id_api_keys_id_fk",1116          "tableFrom": "fetch_requests",1117          "tableTo": "api_keys",1118          "columnsFrom": [1119            "api_key_id"1120          ],1121          "columnsTo": [1122            "id"1123          ],1124          "onDelete": "set null",1125          "onUpdate": "no action"1126        }1127      },1128      "compositePrimaryKeys": {},1129      "uniqueConstraints": {},1130      "policies": {},1131      "checkConstraints": {},1132      "isRLSEnabled": false1133    },1134    "public.legal_acceptances": {1135      "name": "legal_acceptances",1136      "schema": "",1137      "columns": {1138        "id": {1139          "name": "id",1140          "type": "text",1141          "primaryKey": true,1142          "notNull": true1143        },1144        "user_id": {1145          "name": "user_id",1146          "type": "text",1147          "primaryKey": false,1148          "notNull": true1149        },1150        "document": {1151          "name": "document",1152          "type": "text",1153          "primaryKey": false,1154          "notNull": true1155        },1156        "version": {1157          "name": "version",1158          "type": "text",1159          "primaryKey": false,1160          "notNull": true1161        },1162        "ip_address": {1163          "name": "ip_address",1164          "type": "text",1165          "primaryKey": false,1166          "notNull": false1167        },1168        "accepted_at": {1169          "name": "accepted_at",1170          "type": "timestamp with time zone",1171          "primaryKey": false,1172          "notNull": true,1173          "default": "now()"1174        }1175      },1176      "indexes": {1177        "legal_acceptances_user_idx": {1178          "name": "legal_acceptances_user_idx",1179          "columns": [1180            {1181              "expression": "user_id",1182              "isExpression": false,1183              "asc": true,1184              "nulls": "last"1185            }1186          ],1187          "isUnique": false,1188          "concurrently": false,1189          "method": "btree",1190          "with": {}1191        }1192      },1193      "foreignKeys": {1194        "legal_acceptances_user_id_users_id_fk": {1195          "name": "legal_acceptances_user_id_users_id_fk",1196          "tableFrom": "legal_acceptances",1197          "tableTo": "users",1198          "columnsFrom": [1199            "user_id"1200          ],1201          "columnsTo": [1202            "id"1203          ],1204          "onDelete": "cascade",1205          "onUpdate": "no action"1206        }1207      },1208      "compositePrimaryKeys": {},1209      "uniqueConstraints": {},1210      "policies": {},1211      "checkConstraints": {},1212      "isRLSEnabled": false1213    },1214    "public.organization_members": {1215      "name": "organization_members",1216      "schema": "",1217      "columns": {1218        "organization_id": {1219          "name": "organization_id",1220          "type": "text",1221          "primaryKey": false,1222          "notNull": true1223        },1224        "user_id": {1225          "name": "user_id",1226          "type": "text",1227          "primaryKey": false,1228          "notNull": true1229        },1230        "role": {1231          "name": "role",1232          "type": "text",1233          "primaryKey": false,1234          "notNull": true,1235          "default": "'owner'"1236        },1237        "created_at": {1238          "name": "created_at",1239          "type": "timestamp with time zone",1240          "primaryKey": false,1241          "notNull": true,1242          "default": "now()"1243        }1244      },1245      "indexes": {1246        "org_members_user_idx": {1247          "name": "org_members_user_idx",1248          "columns": [1249            {1250              "expression": "user_id",1251              "isExpression": false,1252              "asc": true,1253              "nulls": "last"1254            }1255          ],1256          "isUnique": false,1257          "concurrently": false,1258          "method": "btree",1259          "with": {}1260        }1261      },1262      "foreignKeys": {1263        "organization_members_organization_id_organizations_id_fk": {1264          "name": "organization_members_organization_id_organizations_id_fk",1265          "tableFrom": "organization_members",1266          "tableTo": "organizations",1267          "columnsFrom": [1268            "organization_id"1269          ],1270          "columnsTo": [1271            "id"1272          ],1273          "onDelete": "cascade",1274          "onUpdate": "no action"1275        },1276        "organization_members_user_id_users_id_fk": {1277          "name": "organization_members_user_id_users_id_fk",1278          "tableFrom": "organization_members",1279          "tableTo": "users",1280          "columnsFrom": [1281            "user_id"1282          ],1283          "columnsTo": [1284            "id"1285          ],1286          "onDelete": "cascade",1287          "onUpdate": "no action"1288        }1289      },1290      "compositePrimaryKeys": {1291        "organization_members_organization_id_user_id_pk": {1292          "name": "organization_members_organization_id_user_id_pk",1293          "columns": [1294            "organization_id",1295            "user_id"1296          ]1297        }1298      },1299      "uniqueConstraints": {},1300      "policies": {},1301      "checkConstraints": {},1302      "isRLSEnabled": false1303    },1304    "public.organizations": {1305      "name": "organizations",1306      "schema": "",1307      "columns": {1308        "id": {1309          "name": "id",1310          "type": "text",1311          "primaryKey": true,1312          "notNull": true1313        },1314        "name": {1315          "name": "name",1316          "type": "text",1317          "primaryKey": false,1318          "notNull": true1319        },1320        "slug": {1321          "name": "slug",1322          "type": "text",1323          "primaryKey": false,1324          "notNull": true1325        },1326        "plan": {1327          "name": "plan",1328          "type": "text",1329          "primaryKey": false,1330          "notNull": true,1331          "default": "'free'"1332        },1333        "owner_user_id": {1334          "name": "owner_user_id",1335          "type": "text",1336          "primaryKey": false,1337          "notNull": true1338        },1339        "provider_visibility": {1340          "name": "provider_visibility",1341          "type": "boolean",1342          "primaryKey": false,1343          "notNull": true,1344          "default": false1345        },1346        "soft_limit_usd": {1347          "name": "soft_limit_usd",1348          "type": "double precision",1349          "primaryKey": false,1350          "notNull": false1351        },1352        "hard_limit_usd": {1353          "name": "hard_limit_usd",1354          "type": "double precision",1355          "primaryKey": false,1356          "notNull": false1357        },1358        "stripe_customer_id": {1359          "name": "stripe_customer_id",1360          "type": "text",1361          "primaryKey": false,1362          "notNull": false1363        },1364        "suspended": {1365          "name": "suspended",1366          "type": "boolean",1367          "primaryKey": false,1368          "notNull": true,1369          "default": false1370        },1371        "created_at": {1372          "name": "created_at",1373          "type": "timestamp with time zone",1374          "primaryKey": false,1375          "notNull": true,1376          "default": "now()"1377        },1378        "updated_at": {1379          "name": "updated_at",1380          "type": "timestamp with time zone",1381          "primaryKey": false,1382          "notNull": true,1383          "default": "now()"1384        }1385      },1386      "indexes": {1387        "organizations_slug_uq": {1388          "name": "organizations_slug_uq",1389          "columns": [1390            {1391              "expression": "slug",1392              "isExpression": false,1393              "asc": true,1394              "nulls": "last"1395            }1396          ],1397          "isUnique": true,1398          "concurrently": false,1399          "method": "btree",1400          "with": {}1401        },1402        "organizations_owner_idx": {1403          "name": "organizations_owner_idx",1404          "columns": [1405            {1406              "expression": "owner_user_id",1407              "isExpression": false,1408              "asc": true,1409              "nulls": "last"1410            }1411          ],1412          "isUnique": false,1413          "concurrently": false,1414          "method": "btree",1415          "with": {}1416        }1417      },1418      "foreignKeys": {1419        "organizations_owner_user_id_users_id_fk": {1420          "name": "organizations_owner_user_id_users_id_fk",1421          "tableFrom": "organizations",1422          "tableTo": "users",1423          "columnsFrom": [1424            "owner_user_id"1425          ],1426          "columnsTo": [1427            "id"1428          ],1429          "onDelete": "restrict",1430          "onUpdate": "no action"1431        }1432      },1433      "compositePrimaryKeys": {},1434      "uniqueConstraints": {},1435      "policies": {},1436      "checkConstraints": {},1437      "isRLSEnabled": false1438    },1439    "public.projects": {1440      "name": "projects",1441      "schema": "",1442      "columns": {1443        "id": {1444          "name": "id",1445          "type": "text",1446          "primaryKey": true,1447          "notNull": true1448        },1449        "organization_id": {1450          "name": "organization_id",1451          "type": "text",1452          "primaryKey": false,1453          "notNull": true1454        },1455        "name": {1456          "name": "name",1457          "type": "text",1458          "primaryKey": false,1459          "notNull": true1460        },1461        "slug": {1462          "name": "slug",1463          "type": "text",1464          "primaryKey": false,1465          "notNull": true1466        },1467        "description": {1468          "name": "description",1469          "type": "text",1470          "primaryKey": false,1471          "notNull": false1472        },1473        "environment": {1474          "name": "environment",1475          "type": "text",1476          "primaryKey": false,1477          "notNull": true,1478          "default": "'production'"1479        },1480        "default_country": {1481          "name": "default_country",1482          "type": "text",1483          "primaryKey": false,1484          "notNull": false1485        },1486        "default_network": {1487          "name": "default_network",1488          "type": "text",1489          "primaryKey": false,1490          "notNull": true,1491          "default": "'auto'"1492        },1493        "log_level": {1494          "name": "log_level",1495          "type": "text",1496          "primaryKey": false,1497          "notNull": true,1498          "default": "'metadata'"1499        },1500        "soft_limit_usd": {1501          "name": "soft_limit_usd",1502          "type": "double precision",1503          "primaryKey": false,1504          "notNull": false1505        },1506        "hard_limit_usd": {1507          "name": "hard_limit_usd",1508          "type": "double precision",1509          "primaryKey": false,1510          "notNull": false1511        },1512        "monthly_request_limit": {1513          "name": "monthly_request_limit",1514          "type": "integer",1515          "primaryKey": false,1516          "notNull": false1517        },1518        "archived_at": {1519          "name": "archived_at",1520          "type": "timestamp with time zone",1521          "primaryKey": false,1522          "notNull": false1523        },1524        "created_at": {1525          "name": "created_at",1526          "type": "timestamp with time zone",1527          "primaryKey": false,1528          "notNull": true,1529          "default": "now()"1530        },1531        "updated_at": {1532          "name": "updated_at",1533          "type": "timestamp with time zone",1534          "primaryKey": false,1535          "notNull": true,1536          "default": "now()"1537        }1538      },1539      "indexes": {1540        "projects_org_slug_uq": {1541          "name": "projects_org_slug_uq",1542          "columns": [1543            {1544              "expression": "organization_id",1545              "isExpression": false,1546              "asc": true,1547              "nulls": "last"1548            },1549            {1550              "expression": "slug",1551              "isExpression": false,1552              "asc": true,1553              "nulls": "last"1554            }1555          ],1556          "isUnique": true,1557          "concurrently": false,1558          "method": "btree",1559          "with": {}1560        },1561        "projects_org_idx": {1562          "name": "projects_org_idx",1563          "columns": [1564            {1565              "expression": "organization_id",1566              "isExpression": false,1567              "asc": true,1568              "nulls": "last"1569            }1570          ],1571          "isUnique": false,1572          "concurrently": false,1573          "method": "btree",1574          "with": {}1575        }1576      },1577      "foreignKeys": {1578        "projects_organization_id_organizations_id_fk": {1579          "name": "projects_organization_id_organizations_id_fk",1580          "tableFrom": "projects",1581          "tableTo": "organizations",1582          "columnsFrom": [1583            "organization_id"1584          ],1585          "columnsTo": [1586            "id"1587          ],1588          "onDelete": "cascade",1589          "onUpdate": "no action"1590        }1591      },1592      "compositePrimaryKeys": {},1593      "uniqueConstraints": {},1594      "policies": {},1595      "checkConstraints": {},1596      "isRLSEnabled": false1597    },1598    "public.provider_configs": {1599      "name": "provider_configs",1600      "schema": "",1601      "columns": {1602        "id": {1603          "name": "id",1604          "type": "text",1605          "primaryKey": true,1606          "notNull": true1607        },1608        "label": {1609          "name": "label",1610          "type": "text",1611          "primaryKey": false,1612          "notNull": true1613        },1614        "enabled": {1615          "name": "enabled",1616          "type": "boolean",1617          "primaryKey": false,1618          "notNull": true,1619          "default": true1620        },1621        "networks": {1622          "name": "networks",1623          "type": "jsonb",1624          "primaryKey": false,1625          "notNull": true,1626          "default": "'[\"residential\"]'::jsonb"1627        },1628        "price_per_gb_usd": {1629          "name": "price_per_gb_usd",1630          "type": "jsonb",1631          "primaryKey": false,1632          "notNull": true,1633          "default": "'{}'::jsonb"1634        },1635        "weight": {1636          "name": "weight",1637          "type": "double precision",1638          "primaryKey": false,1639          "notNull": true,1640          "default": 11641        },1642        "max_concurrency": {1643          "name": "max_concurrency",1644          "type": "integer",1645          "primaryKey": false,1646          "notNull": true,1647          "default": 2001648        },1649        "notes": {1650          "name": "notes",1651          "type": "text",1652          "primaryKey": false,1653          "notNull": false1654        },1655        "updated_at": {1656          "name": "updated_at",1657          "type": "timestamp with time zone",1658          "primaryKey": false,1659          "notNull": true,1660          "default": "now()"1661        }1662      },1663      "indexes": {},1664      "foreignKeys": {},1665      "compositePrimaryKeys": {},1666      "uniqueConstraints": {},1667      "policies": {},1668      "checkConstraints": {},1669      "isRLSEnabled": false1670    },1671    "public.provider_health": {1672      "name": "provider_health",1673      "schema": "",1674      "columns": {1675        "id": {1676          "name": "id",1677          "type": "text",1678          "primaryKey": true,1679          "notNull": true1680        },1681        "provider": {1682          "name": "provider",1683          "type": "text",1684          "primaryKey": false,1685          "notNull": true1686        },1687        "network": {1688          "name": "network",1689          "type": "text",1690          "primaryKey": false,1691          "notNull": true1692        },1693        "status": {1694          "name": "status",1695          "type": "text",1696          "primaryKey": false,1697          "notNull": true1698        },1699        "latency_ms": {1700          "name": "latency_ms",1701          "type": "integer",1702          "primaryKey": false,1703          "notNull": false1704        },1705        "success_rate": {1706          "name": "success_rate",1707          "type": "double precision",1708          "primaryKey": false,1709          "notNull": false1710        },1711        "detail": {1712          "name": "detail",1713          "type": "text",1714          "primaryKey": false,1715          "notNull": false1716        },1717        "checked_at": {1718          "name": "checked_at",1719          "type": "timestamp with time zone",1720          "primaryKey": false,1721          "notNull": true,1722          "default": "now()"1723        }1724      },1725      "indexes": {1726        "provider_health_provider_checked_idx": {1727          "name": "provider_health_provider_checked_idx",1728          "columns": [1729            {1730              "expression": "provider",1731              "isExpression": false,1732              "asc": true,1733              "nulls": "last"1734            },1735            {1736              "expression": "checked_at",1737              "isExpression": false,1738              "asc": true,1739              "nulls": "last"1740            }1741          ],1742          "isUnique": false,1743          "concurrently": false,1744          "method": "btree",1745          "with": {}1746        }1747      },1748      "foreignKeys": {},1749      "compositePrimaryKeys": {},1750      "uniqueConstraints": {},1751      "policies": {},1752      "checkConstraints": {},1753      "isRLSEnabled": false1754    },1755    "public.proxy_sessions": {1756      "name": "proxy_sessions",1757      "schema": "",1758      "columns": {1759        "id": {1760          "name": "id",1761          "type": "text",1762          "primaryKey": true,1763          "notNull": true1764        },1765        "organization_id": {1766          "name": "organization_id",1767          "type": "text",1768          "primaryKey": false,1769          "notNull": true1770        },1771        "project_id": {1772          "name": "project_id",1773          "type": "text",1774          "primaryKey": false,1775          "notNull": true1776        },1777        "label": {1778          "name": "label",1779          "type": "text",1780          "primaryKey": false,1781          "notNull": false1782        },1783        "provider": {1784          "name": "provider",1785          "type": "text",1786          "primaryKey": false,1787          "notNull": true1788        },1789        "network": {1790          "name": "network",1791          "type": "text",1792          "primaryKey": false,1793          "notNull": true1794        },1795        "country": {1796          "name": "country",1797          "type": "text",1798          "primaryKey": false,1799          "notNull": false1800        },1801        "region": {1802          "name": "region",1803          "type": "text",1804          "primaryKey": false,1805          "notNull": false1806        },1807        "city": {1808          "name": "city",1809          "type": "text",1810          "primaryKey": false,1811          "notNull": false1812        },1813        "sticky_key": {1814          "name": "sticky_key",1815          "type": "text",1816          "primaryKey": false,1817          "notNull": true1818        },1819        "cookies": {1820          "name": "cookies",1821          "type": "jsonb",1822          "primaryKey": false,1823          "notNull": true,1824          "default": "'[]'::jsonb"1825        },1826        "status": {1827          "name": "status",1828          "type": "text",1829          "primaryKey": false,1830          "notNull": true,1831          "default": "'active'"1832        },1833        "request_count": {1834          "name": "request_count",1835          "type": "integer",1836          "primaryKey": false,1837          "notNull": true,1838          "default": 01839        },1840        "last_used_at": {1841          "name": "last_used_at",1842          "type": "timestamp with time zone",1843          "primaryKey": false,1844          "notNull": false1845        },1846        "expires_at": {1847          "name": "expires_at",1848          "type": "timestamp with time zone",1849          "primaryKey": false,1850          "notNull": true1851        },1852        "created_at": {1853          "name": "created_at",1854          "type": "timestamp with time zone",1855          "primaryKey": false,1856          "notNull": true,1857          "default": "now()"1858        }1859      },1860      "indexes": {1861        "proxy_sessions_project_idx": {1862          "name": "proxy_sessions_project_idx",1863          "columns": [1864            {1865              "expression": "project_id",1866              "isExpression": false,1867              "asc": true,1868              "nulls": "last"1869            }1870          ],1871          "isUnique": false,1872          "concurrently": false,1873          "method": "btree",1874          "with": {}1875        },1876        "proxy_sessions_expires_idx": {1877          "name": "proxy_sessions_expires_idx",1878          "columns": [1879            {1880              "expression": "expires_at",1881              "isExpression": false,1882              "asc": true,1883              "nulls": "last"1884            }1885          ],1886          "isUnique": false,1887          "concurrently": false,1888          "method": "btree",1889          "with": {}1890        }1891      },1892      "foreignKeys": {1893        "proxy_sessions_organization_id_organizations_id_fk": {1894          "name": "proxy_sessions_organization_id_organizations_id_fk",1895          "tableFrom": "proxy_sessions",1896          "tableTo": "organizations",1897          "columnsFrom": [1898            "organization_id"1899          ],1900          "columnsTo": [1901            "id"1902          ],1903          "onDelete": "cascade",1904          "onUpdate": "no action"1905        },1906        "proxy_sessions_project_id_projects_id_fk": {1907          "name": "proxy_sessions_project_id_projects_id_fk",1908          "tableFrom": "proxy_sessions",1909          "tableTo": "projects",1910          "columnsFrom": [1911            "project_id"1912          ],1913          "columnsTo": [1914            "id"1915          ],1916          "onDelete": "cascade",1917          "onUpdate": "no action"1918        }1919      },1920      "compositePrimaryKeys": {},1921      "uniqueConstraints": {},1922      "policies": {},1923      "checkConstraints": {},1924      "isRLSEnabled": false1925    },1926    "public.request_attempts": {1927      "name": "request_attempts",1928      "schema": "",1929      "columns": {1930        "id": {1931          "name": "id",1932          "type": "text",1933          "primaryKey": true,1934          "notNull": true1935        },1936        "request_id": {1937          "name": "request_id",1938          "type": "text",1939          "primaryKey": false,1940          "notNull": true1941        },1942        "attempt_no": {1943          "name": "attempt_no",1944          "type": "integer",1945          "primaryKey": false,1946          "notNull": true1947        },1948        "provider": {1949          "name": "provider",1950          "type": "text",1951          "primaryKey": false,1952          "notNull": true1953        },1954        "network": {1955          "name": "network",1956          "type": "text",1957          "primaryKey": false,1958          "notNull": true1959        },1960        "country": {1961          "name": "country",1962          "type": "text",1963          "primaryKey": false,1964          "notNull": false1965        },1966        "session_key": {1967          "name": "session_key",1968          "type": "text",1969          "primaryKey": false,1970          "notNull": false1971        },1972        "outcome": {1973          "name": "outcome",1974          "type": "text",1975          "primaryKey": false,1976          "notNull": true1977        },1978        "http_status": {1979          "name": "http_status",1980          "type": "integer",1981          "primaryKey": false,1982          "notNull": false1983        },1984        "error_code": {1985          "name": "error_code",1986          "type": "text",1987          "primaryKey": false,1988          "notNull": false1989        },1990        "error_detail": {1991          "name": "error_detail",1992          "type": "text",1993          "primaryKey": false,1994          "notNull": false1995        },1996        "block_reason": {1997          "name": "block_reason",1998          "type": "text",1999          "primaryKey": false,2000          "notNull": false2001        },2002        "duration_ms": {2003          "name": "duration_ms",2004          "type": "integer",2005          "primaryKey": false,2006          "notNull": true,2007          "default": 02008        },2009        "bytes_in": {2010          "name": "bytes_in",2011          "type": "bigint",2012          "primaryKey": false,2013          "notNull": true,2014          "default": 02015        },2016        "bytes_out": {2017          "name": "bytes_out",2018          "type": "bigint",2019          "primaryKey": false,2020          "notNull": true,2021          "default": 02022        },2023        "unit_price_per_gb": {2024          "name": "unit_price_per_gb",2025          "type": "double precision",2026          "primaryKey": false,2027          "notNull": true,2028          "default": 02029        },2030        "cost_usd": {2031          "name": "cost_usd",2032          "type": "double precision",2033          "primaryKey": false,2034          "notNull": true,2035          "default": 02036        },2037        "routing_score": {2038          "name": "routing_score",2039          "type": "double precision",2040          "primaryKey": false,2041          "notNull": false2042        },2043        "timing": {2044          "name": "timing",2045          "type": "jsonb",2046          "primaryKey": false,2047          "notNull": false2048        },2049        "created_at": {2050          "name": "created_at",2051          "type": "timestamp with time zone",2052          "primaryKey": false,2053          "notNull": true,2054          "default": "now()"2055        }2056      },2057      "indexes": {2058        "request_attempts_request_idx": {2059          "name": "request_attempts_request_idx",2060          "columns": [2061            {2062              "expression": "request_id",2063              "isExpression": false,2064              "asc": true,2065              "nulls": "last"2066            }2067          ],2068          "isUnique": false,2069          "concurrently": false,2070          "method": "btree",2071          "with": {}2072        },2073        "request_attempts_provider_created_idx": {2074          "name": "request_attempts_provider_created_idx",2075          "columns": [2076            {2077              "expression": "provider",2078              "isExpression": false,2079              "asc": true,2080              "nulls": "last"2081            },2082            {2083              "expression": "created_at",2084              "isExpression": false,2085              "asc": true,2086              "nulls": "last"2087            }2088          ],2089          "isUnique": false,2090          "concurrently": false,2091          "method": "btree",2092          "with": {}2093        }2094      },2095      "foreignKeys": {2096        "request_attempts_request_id_fetch_requests_id_fk": {2097          "name": "request_attempts_request_id_fetch_requests_id_fk",2098          "tableFrom": "request_attempts",2099          "tableTo": "fetch_requests",2100          "columnsFrom": [2101            "request_id"2102          ],2103          "columnsTo": [2104            "id"2105          ],2106          "onDelete": "cascade",2107          "onUpdate": "no action"2108        }2109      },2110      "compositePrimaryKeys": {},2111      "uniqueConstraints": {},2112      "policies": {},2113      "checkConstraints": {},2114      "isRLSEnabled": false2115    },2116    "public.routing_metrics": {2117      "name": "routing_metrics",2118      "schema": "",2119      "columns": {2120        "id": {2121          "name": "id",2122          "type": "text",2123          "primaryKey": true,2124          "notNull": true2125        },2126        "bucket": {2127          "name": "bucket",2128          "type": "timestamp with time zone",2129          "primaryKey": false,2130          "notNull": true2131        },2132        "provider": {2133          "name": "provider",2134          "type": "text",2135          "primaryKey": false,2136          "notNull": true2137        },2138        "network": {2139          "name": "network",2140          "type": "text",2141          "primaryKey": false,2142          "notNull": true2143        },2144        "country": {2145          "name": "country",2146          "type": "text",2147          "primaryKey": false,2148          "notNull": false2149        },2150        "requests": {2151          "name": "requests",2152          "type": "integer",2153          "primaryKey": false,2154          "notNull": true,2155          "default": 02156        },2157        "successes": {2158          "name": "successes",2159          "type": "integer",2160          "primaryKey": false,2161          "notNull": true,2162          "default": 02163        },2164        "blocked": {2165          "name": "blocked",2166          "type": "integer",2167          "primaryKey": false,2168          "notNull": true,2169          "default": 02170        },2171        "errors": {2172          "name": "errors",2173          "type": "integer",2174          "primaryKey": false,2175          "notNull": true,2176          "default": 02177        },2178        "latency_sum_ms": {2179          "name": "latency_sum_ms",2180          "type": "bigint",2181          "primaryKey": false,2182          "notNull": true,2183          "default": 02184        },2185        "bytes": {2186          "name": "bytes",2187          "type": "bigint",2188          "primaryKey": false,2189          "notNull": true,2190          "default": 02191        },2192        "cost_usd": {2193          "name": "cost_usd",2194          "type": "double precision",2195          "primaryKey": false,2196          "notNull": true,2197          "default": 02198        }2199      },2200      "indexes": {2201        "routing_metrics_bucket_uq": {2202          "name": "routing_metrics_bucket_uq",2203          "columns": [2204            {2205              "expression": "bucket",2206              "isExpression": false,2207              "asc": true,2208              "nulls": "last"2209            },2210            {2211              "expression": "provider",2212              "isExpression": false,2213              "asc": true,2214              "nulls": "last"2215            },2216            {2217              "expression": "network",2218              "isExpression": false,2219              "asc": true,2220              "nulls": "last"2221            },2222            {2223              "expression": "country",2224              "isExpression": false,2225              "asc": true,2226              "nulls": "last"2227            }2228          ],2229          "isUnique": true,2230          "concurrently": false,2231          "method": "btree",2232          "with": {}2233        }2234      },2235      "foreignKeys": {},2236      "compositePrimaryKeys": {},2237      "uniqueConstraints": {},2238      "policies": {},2239      "checkConstraints": {},2240      "isRLSEnabled": false2241    },2242    "public.sessions": {2243      "name": "sessions",2244      "schema": "",2245      "columns": {2246        "id": {2247          "name": "id",2248          "type": "text",2249          "primaryKey": true,2250          "notNull": true2251        },2252        "expires_at": {2253          "name": "expires_at",2254          "type": "timestamp with time zone",2255          "primaryKey": false,2256          "notNull": true2257        },2258        "token": {2259          "name": "token",2260          "type": "text",2261          "primaryKey": false,2262          "notNull": true2263        },2264        "created_at": {2265          "name": "created_at",2266          "type": "timestamp with time zone",2267          "primaryKey": false,2268          "notNull": true,2269          "default": "now()"2270        },2271        "updated_at": {2272          "name": "updated_at",2273          "type": "timestamp with time zone",2274          "primaryKey": false,2275          "notNull": true,2276          "default": "now()"2277        },2278        "ip_address": {2279          "name": "ip_address",2280          "type": "text",2281          "primaryKey": false,2282          "notNull": false2283        },2284        "user_agent": {2285          "name": "user_agent",2286          "type": "text",2287          "primaryKey": false,2288          "notNull": false2289        },2290        "user_id": {2291          "name": "user_id",2292          "type": "text",2293          "primaryKey": false,2294          "notNull": true2295        }2296      },2297      "indexes": {2298        "sessions_token_uq": {2299          "name": "sessions_token_uq",2300          "columns": [2301            {2302              "expression": "token",2303              "isExpression": false,2304              "asc": true,2305              "nulls": "last"2306            }2307          ],2308          "isUnique": true,2309          "concurrently": false,2310          "method": "btree",2311          "with": {}2312        },2313        "sessions_user_idx": {2314          "name": "sessions_user_idx",2315          "columns": [2316            {2317              "expression": "user_id",2318              "isExpression": false,2319              "asc": true,2320              "nulls": "last"2321            }2322          ],2323          "isUnique": false,2324          "concurrently": false,2325          "method": "btree",2326          "with": {}2327        }2328      },2329      "foreignKeys": {2330        "sessions_user_id_users_id_fk": {2331          "name": "sessions_user_id_users_id_fk",2332          "tableFrom": "sessions",2333          "tableTo": "users",2334          "columnsFrom": [2335            "user_id"2336          ],2337          "columnsTo": [2338            "id"2339          ],2340          "onDelete": "cascade",2341          "onUpdate": "no action"2342        }2343      },2344      "compositePrimaryKeys": {},2345      "uniqueConstraints": {},2346      "policies": {},2347      "checkConstraints": {},2348      "isRLSEnabled": false2349    },2350    "public.status_incidents": {2351      "name": "status_incidents",2352      "schema": "",2353      "columns": {2354        "id": {2355          "name": "id",2356          "type": "text",2357          "primaryKey": true,2358          "notNull": true2359        },2360        "component": {2361          "name": "component",2362          "type": "text",2363          "primaryKey": false,2364          "notNull": true2365        },2366        "title": {2367          "name": "title",2368          "type": "text",2369          "primaryKey": false,2370          "notNull": true2371        },2372        "body": {2373          "name": "body",2374          "type": "text",2375          "primaryKey": false,2376          "notNull": false2377        },2378        "severity": {2379          "name": "severity",2380          "type": "text",2381          "primaryKey": false,2382          "notNull": true,2383          "default": "'minor'"2384        },2385        "started_at": {2386          "name": "started_at",2387          "type": "timestamp with time zone",2388          "primaryKey": false,2389          "notNull": true,2390          "default": "now()"2391        },2392        "resolved_at": {2393          "name": "resolved_at",2394          "type": "timestamp with time zone",2395          "primaryKey": false,2396          "notNull": false2397        }2398      },2399      "indexes": {},2400      "foreignKeys": {},2401      "compositePrimaryKeys": {},2402      "uniqueConstraints": {},2403      "policies": {},2404      "checkConstraints": {},2405      "isRLSEnabled": false2406    },2407    "public.subscriptions": {2408      "name": "subscriptions",2409      "schema": "",2410      "columns": {2411        "id": {2412          "name": "id",2413          "type": "text",2414          "primaryKey": true,2415          "notNull": true2416        },2417        "organization_id": {2418          "name": "organization_id",2419          "type": "text",2420          "primaryKey": false,2421          "notNull": true2422        },2423        "plan": {2424          "name": "plan",2425          "type": "text",2426          "primaryKey": false,2427          "notNull": true2428        },2429        "status": {2430          "name": "status",2431          "type": "text",2432          "primaryKey": false,2433          "notNull": true,2434          "default": "'active'"2435        },2436        "stripe_subscription_id": {2437          "name": "stripe_subscription_id",2438          "type": "text",2439          "primaryKey": false,2440          "notNull": false2441        },2442        "current_period_start": {2443          "name": "current_period_start",2444          "type": "timestamp with time zone",2445          "primaryKey": false,2446          "notNull": false2447        },2448        "current_period_end": {2449          "name": "current_period_end",2450          "type": "timestamp with time zone",2451          "primaryKey": false,2452          "notNull": false2453        },2454        "cancel_at_period_end": {2455          "name": "cancel_at_period_end",2456          "type": "boolean",2457          "primaryKey": false,2458          "notNull": true,2459          "default": false2460        },2461        "created_at": {2462          "name": "created_at",2463          "type": "timestamp with time zone",2464          "primaryKey": false,2465          "notNull": true,2466          "default": "now()"2467        },2468        "updated_at": {2469          "name": "updated_at",2470          "type": "timestamp with time zone",2471          "primaryKey": false,2472          "notNull": true,2473          "default": "now()"2474        }2475      },2476      "indexes": {},2477      "foreignKeys": {2478        "subscriptions_organization_id_organizations_id_fk": {2479          "name": "subscriptions_organization_id_organizations_id_fk",2480          "tableFrom": "subscriptions",2481          "tableTo": "organizations",2482          "columnsFrom": [2483            "organization_id"2484          ],2485          "columnsTo": [2486            "id"2487          ],2488          "onDelete": "cascade",2489          "onUpdate": "no action"2490        }2491      },2492      "compositePrimaryKeys": {},2493      "uniqueConstraints": {},2494      "policies": {},2495      "checkConstraints": {},2496      "isRLSEnabled": false2497    },2498    "public.usage_events": {2499      "name": "usage_events",2500      "schema": "",2501      "columns": {2502        "id": {2503          "name": "id",2504          "type": "text",2505          "primaryKey": true,2506          "notNull": true2507        },2508        "organization_id": {2509          "name": "organization_id",2510          "type": "text",2511          "primaryKey": false,2512          "notNull": true2513        },2514        "project_id": {2515          "name": "project_id",2516          "type": "text",2517          "primaryKey": false,2518          "notNull": false2519        },2520        "request_id": {2521          "name": "request_id",2522          "type": "text",2523          "primaryKey": false,2524          "notNull": false2525        },2526        "metric": {2527          "name": "metric",2528          "type": "text",2529          "primaryKey": false,2530          "notNull": true2531        },2532        "quantity": {2533          "name": "quantity",2534          "type": "double precision",2535          "primaryKey": false,2536          "notNull": true2537        },2538        "unit": {2539          "name": "unit",2540          "type": "text",2541          "primaryKey": false,2542          "notNull": true2543        },2544        "cost_usd": {2545          "name": "cost_usd",2546          "type": "double precision",2547          "primaryKey": false,2548          "notNull": true,2549          "default": 02550        },2551        "upstream_cost_usd": {2552          "name": "upstream_cost_usd",2553          "type": "double precision",2554          "primaryKey": false,2555          "notNull": true,2556          "default": 02557        },2558        "created_at": {2559          "name": "created_at",2560          "type": "timestamp with time zone",2561          "primaryKey": false,2562          "notNull": true,2563          "default": "now()"2564        }2565      },2566      "indexes": {2567        "usage_events_org_created_idx": {2568          "name": "usage_events_org_created_idx",2569          "columns": [2570            {2571              "expression": "organization_id",2572              "isExpression": false,2573              "asc": true,2574              "nulls": "last"2575            },2576            {2577              "expression": "created_at",2578              "isExpression": false,2579              "asc": true,2580              "nulls": "last"2581            }2582          ],2583          "isUnique": false,2584          "concurrently": false,2585          "method": "btree",2586          "with": {}2587        },2588        "usage_events_project_created_idx": {2589          "name": "usage_events_project_created_idx",2590          "columns": [2591            {2592              "expression": "project_id",2593              "isExpression": false,2594              "asc": true,2595              "nulls": "last"2596            },2597            {2598              "expression": "created_at",2599              "isExpression": false,2600              "asc": true,2601              "nulls": "last"2602            }2603          ],2604          "isUnique": false,2605          "concurrently": false,2606          "method": "btree",2607          "with": {}2608        }2609      },2610      "foreignKeys": {2611        "usage_events_organization_id_organizations_id_fk": {2612          "name": "usage_events_organization_id_organizations_id_fk",2613          "tableFrom": "usage_events",2614          "tableTo": "organizations",2615          "columnsFrom": [2616            "organization_id"2617          ],2618          "columnsTo": [2619            "id"2620          ],2621          "onDelete": "cascade",2622          "onUpdate": "no action"2623        },2624        "usage_events_project_id_projects_id_fk": {2625          "name": "usage_events_project_id_projects_id_fk",2626          "tableFrom": "usage_events",2627          "tableTo": "projects",2628          "columnsFrom": [2629            "project_id"2630          ],2631          "columnsTo": [2632            "id"2633          ],2634          "onDelete": "set null",2635          "onUpdate": "no action"2636        }2637      },2638      "compositePrimaryKeys": {},2639      "uniqueConstraints": {},2640      "policies": {},2641      "checkConstraints": {},2642      "isRLSEnabled": false2643    },2644    "public.users": {2645      "name": "users",2646      "schema": "",2647      "columns": {2648        "id": {2649          "name": "id",2650          "type": "text",2651          "primaryKey": true,2652          "notNull": true2653        },2654        "name": {2655          "name": "name",2656          "type": "text",2657          "primaryKey": false,2658          "notNull": true,2659          "default": "''"2660        },2661        "email": {2662          "name": "email",2663          "type": "text",2664          "primaryKey": false,2665          "notNull": true2666        },2667        "email_verified": {2668          "name": "email_verified",2669          "type": "boolean",2670          "primaryKey": false,2671          "notNull": true,2672          "default": false2673        },2674        "image": {2675          "name": "image",2676          "type": "text",2677          "primaryKey": false,2678          "notNull": false2679        },2680        "role": {2681          "name": "role",2682          "type": "text",2683          "primaryKey": false,2684          "notNull": true,2685          "default": "'user'"2686        },2687        "banned": {2688          "name": "banned",2689          "type": "boolean",2690          "primaryKey": false,2691          "notNull": true,2692          "default": false2693        },2694        "ban_reason": {2695          "name": "ban_reason",2696          "type": "text",2697          "primaryKey": false,2698          "notNull": false2699        },2700        "onboarding_completed_at": {2701          "name": "onboarding_completed_at",2702          "type": "timestamp with time zone",2703          "primaryKey": false,2704          "notNull": false2705        },2706        "created_at": {2707          "name": "created_at",2708          "type": "timestamp with time zone",2709          "primaryKey": false,2710          "notNull": true,2711          "default": "now()"2712        },2713        "updated_at": {2714          "name": "updated_at",2715          "type": "timestamp with time zone",2716          "primaryKey": false,2717          "notNull": true,2718          "default": "now()"2719        }2720      },2721      "indexes": {2722        "users_email_uq": {2723          "name": "users_email_uq",2724          "columns": [2725            {2726              "expression": "email",2727              "isExpression": false,2728              "asc": true,2729              "nulls": "last"2730            }2731          ],2732          "isUnique": true,2733          "concurrently": false,2734          "method": "btree",2735          "with": {}2736        }2737      },2738      "foreignKeys": {},2739      "compositePrimaryKeys": {},2740      "uniqueConstraints": {},2741      "policies": {},2742      "checkConstraints": {},2743      "isRLSEnabled": false2744    },2745    "public.verifications": {2746      "name": "verifications",2747      "schema": "",2748      "columns": {2749        "id": {2750          "name": "id",2751          "type": "text",2752          "primaryKey": true,2753          "notNull": true2754        },2755        "identifier": {2756          "name": "identifier",2757          "type": "text",2758          "primaryKey": false,2759          "notNull": true2760        },2761        "value": {2762          "name": "value",2763          "type": "text",2764          "primaryKey": false,2765          "notNull": true2766        },2767        "expires_at": {2768          "name": "expires_at",2769          "type": "timestamp with time zone",2770          "primaryKey": false,2771          "notNull": true2772        },2773        "created_at": {2774          "name": "created_at",2775          "type": "timestamp with time zone",2776          "primaryKey": false,2777          "notNull": true,2778          "default": "now()"2779        },2780        "updated_at": {2781          "name": "updated_at",2782          "type": "timestamp with time zone",2783          "primaryKey": false,2784          "notNull": true,2785          "default": "now()"2786        }2787      },2788      "indexes": {2789        "verifications_identifier_idx": {2790          "name": "verifications_identifier_idx",2791          "columns": [2792            {2793              "expression": "identifier",2794              "isExpression": false,2795              "asc": true,2796              "nulls": "last"2797            }2798          ],2799          "isUnique": false,2800          "concurrently": false,2801          "method": "btree",2802          "with": {}2803        }2804      },2805      "foreignKeys": {},2806      "compositePrimaryKeys": {},2807      "uniqueConstraints": {},2808      "policies": {},2809      "checkConstraints": {},2810      "isRLSEnabled": false2811    },2812    "public.webhook_deliveries": {2813      "name": "webhook_deliveries",2814      "schema": "",2815      "columns": {2816        "id": {2817          "name": "id",2818          "type": "text",2819          "primaryKey": true,2820          "notNull": true2821        },2822        "webhook_id": {2823          "name": "webhook_id",2824          "type": "text",2825          "primaryKey": false,2826          "notNull": true2827        },2828        "event": {2829          "name": "event",2830          "type": "text",2831          "primaryKey": false,2832          "notNull": true2833        },2834        "payload": {2835          "name": "payload",2836          "type": "jsonb",2837          "primaryKey": false,2838          "notNull": true2839        },2840        "status": {2841          "name": "status",2842          "type": "text",2843          "primaryKey": false,2844          "notNull": true,2845          "default": "'pending'"2846        },2847        "response_status": {2848          "name": "response_status",2849          "type": "integer",2850          "primaryKey": false,2851          "notNull": false2852        },2853        "attempts": {2854          "name": "attempts",2855          "type": "integer",2856          "primaryKey": false,2857          "notNull": true,2858          "default": 02859        },2860        "next_attempt_at": {2861          "name": "next_attempt_at",2862          "type": "timestamp with time zone",2863          "primaryKey": false,2864          "notNull": false2865        },2866        "created_at": {2867          "name": "created_at",2868          "type": "timestamp with time zone",2869          "primaryKey": false,2870          "notNull": true,2871          "default": "now()"2872        }2873      },2874      "indexes": {2875        "webhook_deliveries_webhook_idx": {2876          "name": "webhook_deliveries_webhook_idx",2877          "columns": [2878            {2879              "expression": "webhook_id",2880              "isExpression": false,2881              "asc": true,2882              "nulls": "last"2883            }2884          ],2885          "isUnique": false,2886          "concurrently": false,2887          "method": "btree",2888          "with": {}2889        }2890      },2891      "foreignKeys": {2892        "webhook_deliveries_webhook_id_webhooks_id_fk": {2893          "name": "webhook_deliveries_webhook_id_webhooks_id_fk",2894          "tableFrom": "webhook_deliveries",2895          "tableTo": "webhooks",2896          "columnsFrom": [2897            "webhook_id"2898          ],2899          "columnsTo": [2900            "id"2901          ],2902          "onDelete": "cascade",2903          "onUpdate": "no action"2904        }2905      },2906      "compositePrimaryKeys": {},2907      "uniqueConstraints": {},2908      "policies": {},2909      "checkConstraints": {},2910      "isRLSEnabled": false2911    },2912    "public.webhooks": {2913      "name": "webhooks",2914      "schema": "",2915      "columns": {2916        "id": {2917          "name": "id",2918          "type": "text",2919          "primaryKey": true,2920          "notNull": true2921        },2922        "organization_id": {2923          "name": "organization_id",2924          "type": "text",2925          "primaryKey": false,2926          "notNull": true2927        },2928        "project_id": {2929          "name": "project_id",2930          "type": "text",2931          "primaryKey": false,2932          "notNull": false2933        },2934        "url": {2935          "name": "url",2936          "type": "text",2937          "primaryKey": false,2938          "notNull": true2939        },2940        "secret": {2941          "name": "secret",2942          "type": "text",2943          "primaryKey": false,2944          "notNull": true2945        },2946        "events": {2947          "name": "events",2948          "type": "jsonb",2949          "primaryKey": false,2950          "notNull": true,2951          "default": "'[]'::jsonb"2952        },2953        "enabled": {2954          "name": "enabled",2955          "type": "boolean",2956          "primaryKey": false,2957          "notNull": true,2958          "default": true2959        },2960        "created_at": {2961          "name": "created_at",2962          "type": "timestamp with time zone",2963          "primaryKey": false,2964          "notNull": true,2965          "default": "now()"2966        }2967      },2968      "indexes": {},2969      "foreignKeys": {2970        "webhooks_organization_id_organizations_id_fk": {2971          "name": "webhooks_organization_id_organizations_id_fk",2972          "tableFrom": "webhooks",2973          "tableTo": "organizations",2974          "columnsFrom": [2975            "organization_id"2976          ],2977          "columnsTo": [2978            "id"2979          ],2980          "onDelete": "cascade",2981          "onUpdate": "no action"2982        },2983        "webhooks_project_id_projects_id_fk": {2984          "name": "webhooks_project_id_projects_id_fk",2985          "tableFrom": "webhooks",2986          "tableTo": "projects",2987          "columnsFrom": [2988            "project_id"2989          ],2990          "columnsTo": [2991            "id"2992          ],2993          "onDelete": "cascade",2994          "onUpdate": "no action"2995        }2996      },2997      "compositePrimaryKeys": {},2998      "uniqueConstraints": {},2999      "policies": {},3000      "checkConstraints": {},3001      "isRLSEnabled": false3002    }3003  },3004  "enums": {},3005  "schemas": {},3006  "sequences": {},3007  "roles": {},3008  "policies": {},3009  "views": {},3010  "_meta": {3011    "columns": {},3012    "schemas": {},3013    "tables": {}3014  }3015}