the universal sandbox runtime for agents and humans. pocketenv.io
sandbox openclaw agent claude-code vercel-sandbox deno-sandbox cloudflare-sandbox atproto sprites daytona
7
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add redacted token columns to auth tables

+1874
+1
apps/api/src/schema/daytona-auth.ts
··· 16 16 .notNull() 17 17 .references(() => users.id), 18 18 apiKey: text("api_key").notNull(), 19 + redactedApiKey: text("redacted_api_key").notNull(), 19 20 createdAt: timestamp("created_at").defaultNow().notNull(), 20 21 }, 21 22 (t) => [uniqueIndex("unique_daytona_auth").on(t.sandboxId, t.userId)],
+1
apps/api/src/schema/deno-auth.ts
··· 16 16 userId: text("user_id") 17 17 .notNull() 18 18 .references(() => users.id), 19 + redactedDenoToken: text("redacted_deno_token").notNull(), 19 20 createdAt: timestamp("created_at").defaultNow().notNull(), 20 21 }, 21 22 (t) => [uniqueIndex("unique_deno_auth").on(t.sandboxId, t.userId)],
+1
apps/api/src/schema/sprite-auth.ts
··· 16 16 .notNull() 17 17 .references(() => users.id), 18 18 spriteToken: text("sprite_token").notNull(), 19 + redatedSpriteToken: text("redated_sprite_token").notNull(), 19 20 createdAt: timestamp("created_at").defaultNow().notNull(), 20 21 }, 21 22 (t) => [uniqueIndex("unique_sprite_auth").on(t.sandboxId, t.userId)],
+1
apps/api/src/schema/vercel-auth.ts
··· 16 16 .notNull() 17 17 .references(() => users.id), 18 18 vercelToken: text("vercel_token").notNull(), 19 + redactedVercelToken: text("redacted_vercel_token").notNull(), 19 20 createdAt: timestamp("created_at").defaultNow().notNull(), 20 21 }, 21 22 (t) => [uniqueIndex("unique_vercel_auth").on(t.sandboxId, t.userId)],
+4
apps/cf-sandbox/drizzle/0037_parallel_ravenous.sql
··· 1 + ALTER TABLE "daytona_auth" ADD COLUMN "redacted_api_key" text NOT NULL;--> statement-breakpoint 2 + ALTER TABLE "deno_auth" ADD COLUMN "redacted_deno_token" text NOT NULL;--> statement-breakpoint 3 + ALTER TABLE "sprite_auth" ADD COLUMN "redacted_sprite_token" text NOT NULL;--> statement-breakpoint 4 + ALTER TABLE "vercel_auth" ADD COLUMN "redacted_vercel_token" text NOT NULL;
+1851
apps/cf-sandbox/drizzle/meta/0037_snapshot.json
··· 1 + { 2 + "id": "a0aae909-ee8a-4928-897e-b533f641ab49", 3 + "prevId": "cc9ddf0a-d95e-4e62-a1c4-fe18d484fc5c", 4 + "version": "7", 5 + "dialect": "postgresql", 6 + "tables": { 7 + "public.authorized_keys": { 8 + "name": "authorized_keys", 9 + "schema": "", 10 + "columns": { 11 + "id": { 12 + "name": "id", 13 + "type": "text", 14 + "primaryKey": true, 15 + "notNull": true, 16 + "default": "xata_id()" 17 + }, 18 + "sandbox_id": { 19 + "name": "sandbox_id", 20 + "type": "text", 21 + "primaryKey": false, 22 + "notNull": false 23 + }, 24 + "public_key": { 25 + "name": "public_key", 26 + "type": "text", 27 + "primaryKey": false, 28 + "notNull": true 29 + }, 30 + "created_at": { 31 + "name": "created_at", 32 + "type": "timestamp", 33 + "primaryKey": false, 34 + "notNull": true, 35 + "default": "now()" 36 + } 37 + }, 38 + "indexes": {}, 39 + "foreignKeys": { 40 + "authorized_keys_sandbox_id_sandboxes_id_fk": { 41 + "name": "authorized_keys_sandbox_id_sandboxes_id_fk", 42 + "tableFrom": "authorized_keys", 43 + "tableTo": "sandboxes", 44 + "columnsFrom": [ 45 + "sandbox_id" 46 + ], 47 + "columnsTo": [ 48 + "id" 49 + ], 50 + "onDelete": "no action", 51 + "onUpdate": "no action" 52 + } 53 + }, 54 + "compositePrimaryKeys": {}, 55 + "uniqueConstraints": {}, 56 + "policies": {}, 57 + "checkConstraints": {}, 58 + "isRLSEnabled": false 59 + }, 60 + "public.daytona_auth": { 61 + "name": "daytona_auth", 62 + "schema": "", 63 + "columns": { 64 + "id": { 65 + "name": "id", 66 + "type": "text", 67 + "primaryKey": true, 68 + "notNull": true, 69 + "default": "xata_id()" 70 + }, 71 + "sandbox_id": { 72 + "name": "sandbox_id", 73 + "type": "text", 74 + "primaryKey": false, 75 + "notNull": true 76 + }, 77 + "user_id": { 78 + "name": "user_id", 79 + "type": "text", 80 + "primaryKey": false, 81 + "notNull": true 82 + }, 83 + "api_key": { 84 + "name": "api_key", 85 + "type": "text", 86 + "primaryKey": false, 87 + "notNull": true 88 + }, 89 + "redacted_api_key": { 90 + "name": "redacted_api_key", 91 + "type": "text", 92 + "primaryKey": false, 93 + "notNull": true 94 + }, 95 + "created_at": { 96 + "name": "created_at", 97 + "type": "timestamp", 98 + "primaryKey": false, 99 + "notNull": true, 100 + "default": "now()" 101 + } 102 + }, 103 + "indexes": { 104 + "unique_daytona_auth": { 105 + "name": "unique_daytona_auth", 106 + "columns": [ 107 + { 108 + "expression": "sandbox_id", 109 + "isExpression": false, 110 + "asc": true, 111 + "nulls": "last" 112 + }, 113 + { 114 + "expression": "user_id", 115 + "isExpression": false, 116 + "asc": true, 117 + "nulls": "last" 118 + } 119 + ], 120 + "isUnique": true, 121 + "concurrently": false, 122 + "method": "btree", 123 + "with": {} 124 + } 125 + }, 126 + "foreignKeys": { 127 + "daytona_auth_sandbox_id_sandboxes_id_fk": { 128 + "name": "daytona_auth_sandbox_id_sandboxes_id_fk", 129 + "tableFrom": "daytona_auth", 130 + "tableTo": "sandboxes", 131 + "columnsFrom": [ 132 + "sandbox_id" 133 + ], 134 + "columnsTo": [ 135 + "id" 136 + ], 137 + "onDelete": "cascade", 138 + "onUpdate": "no action" 139 + }, 140 + "daytona_auth_user_id_users_id_fk": { 141 + "name": "daytona_auth_user_id_users_id_fk", 142 + "tableFrom": "daytona_auth", 143 + "tableTo": "users", 144 + "columnsFrom": [ 145 + "user_id" 146 + ], 147 + "columnsTo": [ 148 + "id" 149 + ], 150 + "onDelete": "no action", 151 + "onUpdate": "no action" 152 + } 153 + }, 154 + "compositePrimaryKeys": {}, 155 + "uniqueConstraints": {}, 156 + "policies": {}, 157 + "checkConstraints": {}, 158 + "isRLSEnabled": false 159 + }, 160 + "public.deno_auth": { 161 + "name": "deno_auth", 162 + "schema": "", 163 + "columns": { 164 + "id": { 165 + "name": "id", 166 + "type": "text", 167 + "primaryKey": true, 168 + "notNull": true, 169 + "default": "xata_id()" 170 + }, 171 + "sandbox_id": { 172 + "name": "sandbox_id", 173 + "type": "text", 174 + "primaryKey": false, 175 + "notNull": true 176 + }, 177 + "deploy_token": { 178 + "name": "deploy_token", 179 + "type": "text", 180 + "primaryKey": false, 181 + "notNull": true 182 + }, 183 + "user_id": { 184 + "name": "user_id", 185 + "type": "text", 186 + "primaryKey": false, 187 + "notNull": true 188 + }, 189 + "redacted_deno_token": { 190 + "name": "redacted_deno_token", 191 + "type": "text", 192 + "primaryKey": false, 193 + "notNull": true 194 + }, 195 + "created_at": { 196 + "name": "created_at", 197 + "type": "timestamp", 198 + "primaryKey": false, 199 + "notNull": true, 200 + "default": "now()" 201 + } 202 + }, 203 + "indexes": { 204 + "unique_deno_auth": { 205 + "name": "unique_deno_auth", 206 + "columns": [ 207 + { 208 + "expression": "sandbox_id", 209 + "isExpression": false, 210 + "asc": true, 211 + "nulls": "last" 212 + }, 213 + { 214 + "expression": "user_id", 215 + "isExpression": false, 216 + "asc": true, 217 + "nulls": "last" 218 + } 219 + ], 220 + "isUnique": true, 221 + "concurrently": false, 222 + "method": "btree", 223 + "with": {} 224 + } 225 + }, 226 + "foreignKeys": { 227 + "deno_auth_sandbox_id_sandboxes_id_fk": { 228 + "name": "deno_auth_sandbox_id_sandboxes_id_fk", 229 + "tableFrom": "deno_auth", 230 + "tableTo": "sandboxes", 231 + "columnsFrom": [ 232 + "sandbox_id" 233 + ], 234 + "columnsTo": [ 235 + "id" 236 + ], 237 + "onDelete": "cascade", 238 + "onUpdate": "no action" 239 + }, 240 + "deno_auth_user_id_users_id_fk": { 241 + "name": "deno_auth_user_id_users_id_fk", 242 + "tableFrom": "deno_auth", 243 + "tableTo": "users", 244 + "columnsFrom": [ 245 + "user_id" 246 + ], 247 + "columnsTo": [ 248 + "id" 249 + ], 250 + "onDelete": "no action", 251 + "onUpdate": "no action" 252 + } 253 + }, 254 + "compositePrimaryKeys": {}, 255 + "uniqueConstraints": {}, 256 + "policies": {}, 257 + "checkConstraints": {}, 258 + "isRLSEnabled": false 259 + }, 260 + "public.files": { 261 + "name": "files", 262 + "schema": "", 263 + "columns": { 264 + "id": { 265 + "name": "id", 266 + "type": "text", 267 + "primaryKey": true, 268 + "notNull": true, 269 + "default": "xata_id()" 270 + }, 271 + "content": { 272 + "name": "content", 273 + "type": "text", 274 + "primaryKey": false, 275 + "notNull": true 276 + }, 277 + "created_at": { 278 + "name": "created_at", 279 + "type": "timestamp", 280 + "primaryKey": false, 281 + "notNull": true, 282 + "default": "now()" 283 + }, 284 + "updated_at": { 285 + "name": "updated_at", 286 + "type": "timestamp", 287 + "primaryKey": false, 288 + "notNull": true, 289 + "default": "now()" 290 + } 291 + }, 292 + "indexes": {}, 293 + "foreignKeys": {}, 294 + "compositePrimaryKeys": {}, 295 + "uniqueConstraints": {}, 296 + "policies": {}, 297 + "checkConstraints": {}, 298 + "isRLSEnabled": false 299 + }, 300 + "public.sandbox_files": { 301 + "name": "sandbox_files", 302 + "schema": "", 303 + "columns": { 304 + "id": { 305 + "name": "id", 306 + "type": "text", 307 + "primaryKey": true, 308 + "notNull": true, 309 + "default": "file_id()" 310 + }, 311 + "sandbox_id": { 312 + "name": "sandbox_id", 313 + "type": "text", 314 + "primaryKey": false, 315 + "notNull": true 316 + }, 317 + "file_id": { 318 + "name": "file_id", 319 + "type": "text", 320 + "primaryKey": false, 321 + "notNull": true 322 + }, 323 + "path": { 324 + "name": "path", 325 + "type": "text", 326 + "primaryKey": false, 327 + "notNull": true 328 + }, 329 + "created_at": { 330 + "name": "created_at", 331 + "type": "timestamp", 332 + "primaryKey": false, 333 + "notNull": true, 334 + "default": "now()" 335 + }, 336 + "updated_at": { 337 + "name": "updated_at", 338 + "type": "timestamp", 339 + "primaryKey": false, 340 + "notNull": true, 341 + "default": "now()" 342 + } 343 + }, 344 + "indexes": { 345 + "unique_sandbox_file_path": { 346 + "name": "unique_sandbox_file_path", 347 + "columns": [ 348 + { 349 + "expression": "sandbox_id", 350 + "isExpression": false, 351 + "asc": true, 352 + "nulls": "last" 353 + }, 354 + { 355 + "expression": "path", 356 + "isExpression": false, 357 + "asc": true, 358 + "nulls": "last" 359 + } 360 + ], 361 + "isUnique": true, 362 + "concurrently": false, 363 + "method": "btree", 364 + "with": {} 365 + } 366 + }, 367 + "foreignKeys": { 368 + "sandbox_files_sandbox_id_sandboxes_id_fk": { 369 + "name": "sandbox_files_sandbox_id_sandboxes_id_fk", 370 + "tableFrom": "sandbox_files", 371 + "tableTo": "sandboxes", 372 + "columnsFrom": [ 373 + "sandbox_id" 374 + ], 375 + "columnsTo": [ 376 + "id" 377 + ], 378 + "onDelete": "cascade", 379 + "onUpdate": "no action" 380 + }, 381 + "sandbox_files_file_id_files_id_fk": { 382 + "name": "sandbox_files_file_id_files_id_fk", 383 + "tableFrom": "sandbox_files", 384 + "tableTo": "files", 385 + "columnsFrom": [ 386 + "file_id" 387 + ], 388 + "columnsTo": [ 389 + "id" 390 + ], 391 + "onDelete": "no action", 392 + "onUpdate": "no action" 393 + } 394 + }, 395 + "compositePrimaryKeys": {}, 396 + "uniqueConstraints": {}, 397 + "policies": {}, 398 + "checkConstraints": {}, 399 + "isRLSEnabled": false 400 + }, 401 + "public.sandbox_ports": { 402 + "name": "sandbox_ports", 403 + "schema": "", 404 + "columns": { 405 + "id": { 406 + "name": "id", 407 + "type": "text", 408 + "primaryKey": true, 409 + "notNull": true, 410 + "default": "xata_id()" 411 + }, 412 + "sandbox_id": { 413 + "name": "sandbox_id", 414 + "type": "text", 415 + "primaryKey": false, 416 + "notNull": true 417 + }, 418 + "exposed_port": { 419 + "name": "exposed_port", 420 + "type": "integer", 421 + "primaryKey": false, 422 + "notNull": true 423 + }, 424 + "preview_url": { 425 + "name": "preview_url", 426 + "type": "text", 427 + "primaryKey": false, 428 + "notNull": false 429 + }, 430 + "description": { 431 + "name": "description", 432 + "type": "text", 433 + "primaryKey": false, 434 + "notNull": false 435 + }, 436 + "service_id": { 437 + "name": "service_id", 438 + "type": "text", 439 + "primaryKey": false, 440 + "notNull": false 441 + }, 442 + "created_at": { 443 + "name": "created_at", 444 + "type": "timestamp", 445 + "primaryKey": false, 446 + "notNull": true, 447 + "default": "now()" 448 + }, 449 + "updated_at": { 450 + "name": "updated_at", 451 + "type": "timestamp", 452 + "primaryKey": false, 453 + "notNull": true, 454 + "default": "now()" 455 + } 456 + }, 457 + "indexes": { 458 + "unique_sandbox_port": { 459 + "name": "unique_sandbox_port", 460 + "columns": [ 461 + { 462 + "expression": "sandbox_id", 463 + "isExpression": false, 464 + "asc": true, 465 + "nulls": "last" 466 + }, 467 + { 468 + "expression": "exposed_port", 469 + "isExpression": false, 470 + "asc": true, 471 + "nulls": "last" 472 + } 473 + ], 474 + "isUnique": true, 475 + "concurrently": false, 476 + "method": "btree", 477 + "with": {} 478 + } 479 + }, 480 + "foreignKeys": { 481 + "sandbox_ports_sandbox_id_sandboxes_id_fk": { 482 + "name": "sandbox_ports_sandbox_id_sandboxes_id_fk", 483 + "tableFrom": "sandbox_ports", 484 + "tableTo": "sandboxes", 485 + "columnsFrom": [ 486 + "sandbox_id" 487 + ], 488 + "columnsTo": [ 489 + "id" 490 + ], 491 + "onDelete": "cascade", 492 + "onUpdate": "no action" 493 + }, 494 + "sandbox_ports_service_id_services_id_fk": { 495 + "name": "sandbox_ports_service_id_services_id_fk", 496 + "tableFrom": "sandbox_ports", 497 + "tableTo": "services", 498 + "columnsFrom": [ 499 + "service_id" 500 + ], 501 + "columnsTo": [ 502 + "id" 503 + ], 504 + "onDelete": "no action", 505 + "onUpdate": "no action" 506 + } 507 + }, 508 + "compositePrimaryKeys": {}, 509 + "uniqueConstraints": {}, 510 + "policies": {}, 511 + "checkConstraints": {}, 512 + "isRLSEnabled": false 513 + }, 514 + "public.sandbox_secrets": { 515 + "name": "sandbox_secrets", 516 + "schema": "", 517 + "columns": { 518 + "id": { 519 + "name": "id", 520 + "type": "text", 521 + "primaryKey": true, 522 + "notNull": true, 523 + "default": "xata_id()" 524 + }, 525 + "sandbox_id": { 526 + "name": "sandbox_id", 527 + "type": "text", 528 + "primaryKey": false, 529 + "notNull": true 530 + }, 531 + "secret_id": { 532 + "name": "secret_id", 533 + "type": "text", 534 + "primaryKey": false, 535 + "notNull": true 536 + }, 537 + "name": { 538 + "name": "name", 539 + "type": "text", 540 + "primaryKey": false, 541 + "notNull": false 542 + }, 543 + "created_at": { 544 + "name": "created_at", 545 + "type": "timestamp", 546 + "primaryKey": false, 547 + "notNull": true, 548 + "default": "now()" 549 + }, 550 + "updated_at": { 551 + "name": "updated_at", 552 + "type": "timestamp", 553 + "primaryKey": false, 554 + "notNull": true, 555 + "default": "now()" 556 + } 557 + }, 558 + "indexes": { 559 + "unique_sandbox_secret_by_name": { 560 + "name": "unique_sandbox_secret_by_name", 561 + "columns": [ 562 + { 563 + "expression": "sandbox_id", 564 + "isExpression": false, 565 + "asc": true, 566 + "nulls": "last" 567 + }, 568 + { 569 + "expression": "name", 570 + "isExpression": false, 571 + "asc": true, 572 + "nulls": "last" 573 + } 574 + ], 575 + "isUnique": true, 576 + "concurrently": false, 577 + "method": "btree", 578 + "with": {} 579 + } 580 + }, 581 + "foreignKeys": { 582 + "sandbox_secrets_sandbox_id_sandboxes_id_fk": { 583 + "name": "sandbox_secrets_sandbox_id_sandboxes_id_fk", 584 + "tableFrom": "sandbox_secrets", 585 + "tableTo": "sandboxes", 586 + "columnsFrom": [ 587 + "sandbox_id" 588 + ], 589 + "columnsTo": [ 590 + "id" 591 + ], 592 + "onDelete": "cascade", 593 + "onUpdate": "no action" 594 + }, 595 + "sandbox_secrets_secret_id_secrets_id_fk": { 596 + "name": "sandbox_secrets_secret_id_secrets_id_fk", 597 + "tableFrom": "sandbox_secrets", 598 + "tableTo": "secrets", 599 + "columnsFrom": [ 600 + "secret_id" 601 + ], 602 + "columnsTo": [ 603 + "id" 604 + ], 605 + "onDelete": "no action", 606 + "onUpdate": "no action" 607 + } 608 + }, 609 + "compositePrimaryKeys": {}, 610 + "uniqueConstraints": {}, 611 + "policies": {}, 612 + "checkConstraints": {}, 613 + "isRLSEnabled": false 614 + }, 615 + "public.sandbox_variables": { 616 + "name": "sandbox_variables", 617 + "schema": "", 618 + "columns": { 619 + "id": { 620 + "name": "id", 621 + "type": "text", 622 + "primaryKey": true, 623 + "notNull": true, 624 + "default": "xata_id()" 625 + }, 626 + "sandbox_id": { 627 + "name": "sandbox_id", 628 + "type": "text", 629 + "primaryKey": false, 630 + "notNull": true 631 + }, 632 + "variable_id": { 633 + "name": "variable_id", 634 + "type": "text", 635 + "primaryKey": false, 636 + "notNull": true 637 + }, 638 + "name": { 639 + "name": "name", 640 + "type": "text", 641 + "primaryKey": false, 642 + "notNull": true 643 + }, 644 + "created_at": { 645 + "name": "created_at", 646 + "type": "timestamp", 647 + "primaryKey": false, 648 + "notNull": true, 649 + "default": "now()" 650 + }, 651 + "updated_at": { 652 + "name": "updated_at", 653 + "type": "timestamp", 654 + "primaryKey": false, 655 + "notNull": true, 656 + "default": "now()" 657 + } 658 + }, 659 + "indexes": { 660 + "unique_sandbox_variables_by_name": { 661 + "name": "unique_sandbox_variables_by_name", 662 + "columns": [ 663 + { 664 + "expression": "sandbox_id", 665 + "isExpression": false, 666 + "asc": true, 667 + "nulls": "last" 668 + }, 669 + { 670 + "expression": "name", 671 + "isExpression": false, 672 + "asc": true, 673 + "nulls": "last" 674 + } 675 + ], 676 + "isUnique": true, 677 + "concurrently": false, 678 + "method": "btree", 679 + "with": {} 680 + } 681 + }, 682 + "foreignKeys": { 683 + "sandbox_variables_sandbox_id_sandboxes_id_fk": { 684 + "name": "sandbox_variables_sandbox_id_sandboxes_id_fk", 685 + "tableFrom": "sandbox_variables", 686 + "tableTo": "sandboxes", 687 + "columnsFrom": [ 688 + "sandbox_id" 689 + ], 690 + "columnsTo": [ 691 + "id" 692 + ], 693 + "onDelete": "cascade", 694 + "onUpdate": "no action" 695 + }, 696 + "sandbox_variables_variable_id_variables_id_fk": { 697 + "name": "sandbox_variables_variable_id_variables_id_fk", 698 + "tableFrom": "sandbox_variables", 699 + "tableTo": "variables", 700 + "columnsFrom": [ 701 + "variable_id" 702 + ], 703 + "columnsTo": [ 704 + "id" 705 + ], 706 + "onDelete": "no action", 707 + "onUpdate": "no action" 708 + } 709 + }, 710 + "compositePrimaryKeys": {}, 711 + "uniqueConstraints": {}, 712 + "policies": {}, 713 + "checkConstraints": {}, 714 + "isRLSEnabled": false 715 + }, 716 + "public.sandbox_volumes": { 717 + "name": "sandbox_volumes", 718 + "schema": "", 719 + "columns": { 720 + "id": { 721 + "name": "id", 722 + "type": "text", 723 + "primaryKey": true, 724 + "notNull": true, 725 + "default": "volume_id()" 726 + }, 727 + "sandbox_id": { 728 + "name": "sandbox_id", 729 + "type": "text", 730 + "primaryKey": false, 731 + "notNull": true 732 + }, 733 + "volume_id": { 734 + "name": "volume_id", 735 + "type": "text", 736 + "primaryKey": false, 737 + "notNull": true 738 + }, 739 + "name": { 740 + "name": "name", 741 + "type": "text", 742 + "primaryKey": false, 743 + "notNull": false 744 + }, 745 + "path": { 746 + "name": "path", 747 + "type": "text", 748 + "primaryKey": false, 749 + "notNull": true 750 + }, 751 + "created_at": { 752 + "name": "created_at", 753 + "type": "timestamp", 754 + "primaryKey": false, 755 + "notNull": true, 756 + "default": "now()" 757 + }, 758 + "updated_at": { 759 + "name": "updated_at", 760 + "type": "timestamp", 761 + "primaryKey": false, 762 + "notNull": true, 763 + "default": "now()" 764 + } 765 + }, 766 + "indexes": { 767 + "unique_sandbox_volume_path": { 768 + "name": "unique_sandbox_volume_path", 769 + "columns": [ 770 + { 771 + "expression": "sandbox_id", 772 + "isExpression": false, 773 + "asc": true, 774 + "nulls": "last" 775 + }, 776 + { 777 + "expression": "path", 778 + "isExpression": false, 779 + "asc": true, 780 + "nulls": "last" 781 + } 782 + ], 783 + "isUnique": true, 784 + "concurrently": false, 785 + "method": "btree", 786 + "with": {} 787 + } 788 + }, 789 + "foreignKeys": { 790 + "sandbox_volumes_sandbox_id_sandboxes_id_fk": { 791 + "name": "sandbox_volumes_sandbox_id_sandboxes_id_fk", 792 + "tableFrom": "sandbox_volumes", 793 + "tableTo": "sandboxes", 794 + "columnsFrom": [ 795 + "sandbox_id" 796 + ], 797 + "columnsTo": [ 798 + "id" 799 + ], 800 + "onDelete": "cascade", 801 + "onUpdate": "no action" 802 + }, 803 + "sandbox_volumes_volume_id_volumes_id_fk": { 804 + "name": "sandbox_volumes_volume_id_volumes_id_fk", 805 + "tableFrom": "sandbox_volumes", 806 + "tableTo": "volumes", 807 + "columnsFrom": [ 808 + "volume_id" 809 + ], 810 + "columnsTo": [ 811 + "id" 812 + ], 813 + "onDelete": "no action", 814 + "onUpdate": "no action" 815 + } 816 + }, 817 + "compositePrimaryKeys": {}, 818 + "uniqueConstraints": {}, 819 + "policies": {}, 820 + "checkConstraints": {}, 821 + "isRLSEnabled": false 822 + }, 823 + "public.sandboxes": { 824 + "name": "sandboxes", 825 + "schema": "", 826 + "columns": { 827 + "id": { 828 + "name": "id", 829 + "type": "text", 830 + "primaryKey": true, 831 + "notNull": true, 832 + "default": "sandbox_id()" 833 + }, 834 + "base": { 835 + "name": "base", 836 + "type": "text", 837 + "primaryKey": false, 838 + "notNull": false 839 + }, 840 + "name": { 841 + "name": "name", 842 + "type": "text", 843 + "primaryKey": false, 844 + "notNull": true 845 + }, 846 + "display_name": { 847 + "name": "display_name", 848 + "type": "text", 849 + "primaryKey": false, 850 + "notNull": false 851 + }, 852 + "uri": { 853 + "name": "uri", 854 + "type": "text", 855 + "primaryKey": false, 856 + "notNull": false 857 + }, 858 + "cid": { 859 + "name": "cid", 860 + "type": "text", 861 + "primaryKey": false, 862 + "notNull": false 863 + }, 864 + "repo": { 865 + "name": "repo", 866 + "type": "text", 867 + "primaryKey": false, 868 + "notNull": false 869 + }, 870 + "provider": { 871 + "name": "provider", 872 + "type": "text", 873 + "primaryKey": false, 874 + "notNull": true, 875 + "default": "'cloudflare'" 876 + }, 877 + "description": { 878 + "name": "description", 879 + "type": "text", 880 + "primaryKey": false, 881 + "notNull": false 882 + }, 883 + "topics": { 884 + "name": "topics", 885 + "type": "text[]", 886 + "primaryKey": false, 887 + "notNull": false 888 + }, 889 + "logo": { 890 + "name": "logo", 891 + "type": "text", 892 + "primaryKey": false, 893 + "notNull": false 894 + }, 895 + "readme": { 896 + "name": "readme", 897 + "type": "text", 898 + "primaryKey": false, 899 + "notNull": false 900 + }, 901 + "public_key": { 902 + "name": "public_key", 903 + "type": "text", 904 + "primaryKey": false, 905 + "notNull": true 906 + }, 907 + "user_id": { 908 + "name": "user_id", 909 + "type": "text", 910 + "primaryKey": false, 911 + "notNull": false 912 + }, 913 + "instance_type": { 914 + "name": "instance_type", 915 + "type": "text", 916 + "primaryKey": false, 917 + "notNull": false 918 + }, 919 + "vcpus": { 920 + "name": "vcpus", 921 + "type": "integer", 922 + "primaryKey": false, 923 + "notNull": false 924 + }, 925 + "memory": { 926 + "name": "memory", 927 + "type": "integer", 928 + "primaryKey": false, 929 + "notNull": false 930 + }, 931 + "disk": { 932 + "name": "disk", 933 + "type": "integer", 934 + "primaryKey": false, 935 + "notNull": false 936 + }, 937 + "status": { 938 + "name": "status", 939 + "type": "text", 940 + "primaryKey": false, 941 + "notNull": true 942 + }, 943 + "keep_alive": { 944 + "name": "keep_alive", 945 + "type": "boolean", 946 + "primaryKey": false, 947 + "notNull": true, 948 + "default": false 949 + }, 950 + "sleep_after": { 951 + "name": "sleep_after", 952 + "type": "text", 953 + "primaryKey": false, 954 + "notNull": false 955 + }, 956 + "sandbox_id": { 957 + "name": "sandbox_id", 958 + "type": "text", 959 + "primaryKey": false, 960 + "notNull": false 961 + }, 962 + "installs": { 963 + "name": "installs", 964 + "type": "integer", 965 + "primaryKey": false, 966 + "notNull": true, 967 + "default": 0 968 + }, 969 + "started_at": { 970 + "name": "started_at", 971 + "type": "timestamp", 972 + "primaryKey": false, 973 + "notNull": false 974 + }, 975 + "created_at": { 976 + "name": "created_at", 977 + "type": "timestamp", 978 + "primaryKey": false, 979 + "notNull": true, 980 + "default": "now()" 981 + }, 982 + "updated_at": { 983 + "name": "updated_at", 984 + "type": "timestamp", 985 + "primaryKey": false, 986 + "notNull": true, 987 + "default": "now()" 988 + } 989 + }, 990 + "indexes": {}, 991 + "foreignKeys": { 992 + "sandboxes_user_id_users_id_fk": { 993 + "name": "sandboxes_user_id_users_id_fk", 994 + "tableFrom": "sandboxes", 995 + "tableTo": "users", 996 + "columnsFrom": [ 997 + "user_id" 998 + ], 999 + "columnsTo": [ 1000 + "id" 1001 + ], 1002 + "onDelete": "no action", 1003 + "onUpdate": "no action" 1004 + } 1005 + }, 1006 + "compositePrimaryKeys": {}, 1007 + "uniqueConstraints": { 1008 + "sandboxes_name_unique": { 1009 + "name": "sandboxes_name_unique", 1010 + "nullsNotDistinct": false, 1011 + "columns": [ 1012 + "name" 1013 + ] 1014 + }, 1015 + "sandboxes_uri_unique": { 1016 + "name": "sandboxes_uri_unique", 1017 + "nullsNotDistinct": false, 1018 + "columns": [ 1019 + "uri" 1020 + ] 1021 + }, 1022 + "sandboxes_cid_unique": { 1023 + "name": "sandboxes_cid_unique", 1024 + "nullsNotDistinct": false, 1025 + "columns": [ 1026 + "cid" 1027 + ] 1028 + } 1029 + }, 1030 + "policies": {}, 1031 + "checkConstraints": {}, 1032 + "isRLSEnabled": false 1033 + }, 1034 + "public.secrets": { 1035 + "name": "secrets", 1036 + "schema": "", 1037 + "columns": { 1038 + "id": { 1039 + "name": "id", 1040 + "type": "text", 1041 + "primaryKey": true, 1042 + "notNull": true, 1043 + "default": "secret_id()" 1044 + }, 1045 + "name": { 1046 + "name": "name", 1047 + "type": "text", 1048 + "primaryKey": false, 1049 + "notNull": true 1050 + }, 1051 + "value": { 1052 + "name": "value", 1053 + "type": "text", 1054 + "primaryKey": false, 1055 + "notNull": true 1056 + }, 1057 + "redacted": { 1058 + "name": "redacted", 1059 + "type": "text", 1060 + "primaryKey": false, 1061 + "notNull": false 1062 + }, 1063 + "created_at": { 1064 + "name": "created_at", 1065 + "type": "timestamp", 1066 + "primaryKey": false, 1067 + "notNull": true, 1068 + "default": "now()" 1069 + } 1070 + }, 1071 + "indexes": {}, 1072 + "foreignKeys": {}, 1073 + "compositePrimaryKeys": {}, 1074 + "uniqueConstraints": {}, 1075 + "policies": {}, 1076 + "checkConstraints": {}, 1077 + "isRLSEnabled": false 1078 + }, 1079 + "public.services": { 1080 + "name": "services", 1081 + "schema": "", 1082 + "columns": { 1083 + "id": { 1084 + "name": "id", 1085 + "type": "text", 1086 + "primaryKey": true, 1087 + "notNull": true, 1088 + "default": "xata_id()" 1089 + }, 1090 + "sandbox_id": { 1091 + "name": "sandbox_id", 1092 + "type": "text", 1093 + "primaryKey": false, 1094 + "notNull": true 1095 + }, 1096 + "name": { 1097 + "name": "name", 1098 + "type": "text", 1099 + "primaryKey": false, 1100 + "notNull": true 1101 + }, 1102 + "command": { 1103 + "name": "command", 1104 + "type": "text", 1105 + "primaryKey": false, 1106 + "notNull": true 1107 + }, 1108 + "description": { 1109 + "name": "description", 1110 + "type": "text", 1111 + "primaryKey": false, 1112 + "notNull": false 1113 + }, 1114 + "service_id": { 1115 + "name": "service_id", 1116 + "type": "text", 1117 + "primaryKey": false, 1118 + "notNull": false 1119 + }, 1120 + "status": { 1121 + "name": "status", 1122 + "type": "text", 1123 + "primaryKey": false, 1124 + "notNull": true, 1125 + "default": "'STOPPED'" 1126 + }, 1127 + "created_at": { 1128 + "name": "created_at", 1129 + "type": "timestamp", 1130 + "primaryKey": false, 1131 + "notNull": true, 1132 + "default": "now()" 1133 + }, 1134 + "updated_at": { 1135 + "name": "updated_at", 1136 + "type": "timestamp", 1137 + "primaryKey": false, 1138 + "notNull": true, 1139 + "default": "now()" 1140 + } 1141 + }, 1142 + "indexes": { 1143 + "unique_sandbox_service": { 1144 + "name": "unique_sandbox_service", 1145 + "columns": [ 1146 + { 1147 + "expression": "name", 1148 + "isExpression": false, 1149 + "asc": true, 1150 + "nulls": "last" 1151 + }, 1152 + { 1153 + "expression": "sandbox_id", 1154 + "isExpression": false, 1155 + "asc": true, 1156 + "nulls": "last" 1157 + } 1158 + ], 1159 + "isUnique": true, 1160 + "concurrently": false, 1161 + "method": "btree", 1162 + "with": {} 1163 + } 1164 + }, 1165 + "foreignKeys": { 1166 + "services_sandbox_id_sandboxes_id_fk": { 1167 + "name": "services_sandbox_id_sandboxes_id_fk", 1168 + "tableFrom": "services", 1169 + "tableTo": "sandboxes", 1170 + "columnsFrom": [ 1171 + "sandbox_id" 1172 + ], 1173 + "columnsTo": [ 1174 + "id" 1175 + ], 1176 + "onDelete": "cascade", 1177 + "onUpdate": "no action" 1178 + } 1179 + }, 1180 + "compositePrimaryKeys": {}, 1181 + "uniqueConstraints": {}, 1182 + "policies": {}, 1183 + "checkConstraints": {}, 1184 + "isRLSEnabled": false 1185 + }, 1186 + "public.snapshots": { 1187 + "name": "snapshots", 1188 + "schema": "", 1189 + "columns": { 1190 + "id": { 1191 + "name": "id", 1192 + "type": "text", 1193 + "primaryKey": true, 1194 + "notNull": true, 1195 + "default": "snapshot_id()" 1196 + }, 1197 + "slug": { 1198 + "name": "slug", 1199 + "type": "text", 1200 + "primaryKey": false, 1201 + "notNull": true 1202 + }, 1203 + "created_at": { 1204 + "name": "created_at", 1205 + "type": "timestamp", 1206 + "primaryKey": false, 1207 + "notNull": true, 1208 + "default": "now()" 1209 + } 1210 + }, 1211 + "indexes": {}, 1212 + "foreignKeys": {}, 1213 + "compositePrimaryKeys": {}, 1214 + "uniqueConstraints": { 1215 + "snapshots_slug_unique": { 1216 + "name": "snapshots_slug_unique", 1217 + "nullsNotDistinct": false, 1218 + "columns": [ 1219 + "slug" 1220 + ] 1221 + } 1222 + }, 1223 + "policies": {}, 1224 + "checkConstraints": {}, 1225 + "isRLSEnabled": false 1226 + }, 1227 + "public.sprite_auth": { 1228 + "name": "sprite_auth", 1229 + "schema": "", 1230 + "columns": { 1231 + "id": { 1232 + "name": "id", 1233 + "type": "text", 1234 + "primaryKey": true, 1235 + "notNull": true, 1236 + "default": "xata_id()" 1237 + }, 1238 + "sandbox_id": { 1239 + "name": "sandbox_id", 1240 + "type": "text", 1241 + "primaryKey": false, 1242 + "notNull": true 1243 + }, 1244 + "user_id": { 1245 + "name": "user_id", 1246 + "type": "text", 1247 + "primaryKey": false, 1248 + "notNull": true 1249 + }, 1250 + "sprite_token": { 1251 + "name": "sprite_token", 1252 + "type": "text", 1253 + "primaryKey": false, 1254 + "notNull": true 1255 + }, 1256 + "redacted_sprite_token": { 1257 + "name": "redacted_sprite_token", 1258 + "type": "text", 1259 + "primaryKey": false, 1260 + "notNull": true 1261 + }, 1262 + "created_at": { 1263 + "name": "created_at", 1264 + "type": "timestamp", 1265 + "primaryKey": false, 1266 + "notNull": true, 1267 + "default": "now()" 1268 + } 1269 + }, 1270 + "indexes": { 1271 + "unique_sprite_auth": { 1272 + "name": "unique_sprite_auth", 1273 + "columns": [ 1274 + { 1275 + "expression": "sandbox_id", 1276 + "isExpression": false, 1277 + "asc": true, 1278 + "nulls": "last" 1279 + }, 1280 + { 1281 + "expression": "user_id", 1282 + "isExpression": false, 1283 + "asc": true, 1284 + "nulls": "last" 1285 + } 1286 + ], 1287 + "isUnique": true, 1288 + "concurrently": false, 1289 + "method": "btree", 1290 + "with": {} 1291 + } 1292 + }, 1293 + "foreignKeys": { 1294 + "sprite_auth_sandbox_id_sandboxes_id_fk": { 1295 + "name": "sprite_auth_sandbox_id_sandboxes_id_fk", 1296 + "tableFrom": "sprite_auth", 1297 + "tableTo": "sandboxes", 1298 + "columnsFrom": [ 1299 + "sandbox_id" 1300 + ], 1301 + "columnsTo": [ 1302 + "id" 1303 + ], 1304 + "onDelete": "cascade", 1305 + "onUpdate": "no action" 1306 + }, 1307 + "sprite_auth_user_id_users_id_fk": { 1308 + "name": "sprite_auth_user_id_users_id_fk", 1309 + "tableFrom": "sprite_auth", 1310 + "tableTo": "users", 1311 + "columnsFrom": [ 1312 + "user_id" 1313 + ], 1314 + "columnsTo": [ 1315 + "id" 1316 + ], 1317 + "onDelete": "no action", 1318 + "onUpdate": "no action" 1319 + } 1320 + }, 1321 + "compositePrimaryKeys": {}, 1322 + "uniqueConstraints": {}, 1323 + "policies": {}, 1324 + "checkConstraints": {}, 1325 + "isRLSEnabled": false 1326 + }, 1327 + "public.ssh_keys": { 1328 + "name": "ssh_keys", 1329 + "schema": "", 1330 + "columns": { 1331 + "id": { 1332 + "name": "id", 1333 + "type": "text", 1334 + "primaryKey": true, 1335 + "notNull": true, 1336 + "default": "xata_id()" 1337 + }, 1338 + "sandbox_id": { 1339 + "name": "sandbox_id", 1340 + "type": "text", 1341 + "primaryKey": false, 1342 + "notNull": true 1343 + }, 1344 + "public_key": { 1345 + "name": "public_key", 1346 + "type": "text", 1347 + "primaryKey": false, 1348 + "notNull": true 1349 + }, 1350 + "private_key": { 1351 + "name": "private_key", 1352 + "type": "text", 1353 + "primaryKey": false, 1354 + "notNull": true 1355 + }, 1356 + "redacted": { 1357 + "name": "redacted", 1358 + "type": "text", 1359 + "primaryKey": false, 1360 + "notNull": false 1361 + }, 1362 + "created_at": { 1363 + "name": "created_at", 1364 + "type": "timestamp", 1365 + "primaryKey": false, 1366 + "notNull": true, 1367 + "default": "now()" 1368 + } 1369 + }, 1370 + "indexes": { 1371 + "unique_sandbox_ssh_key": { 1372 + "name": "unique_sandbox_ssh_key", 1373 + "columns": [ 1374 + { 1375 + "expression": "public_key", 1376 + "isExpression": false, 1377 + "asc": true, 1378 + "nulls": "last" 1379 + }, 1380 + { 1381 + "expression": "sandbox_id", 1382 + "isExpression": false, 1383 + "asc": true, 1384 + "nulls": "last" 1385 + } 1386 + ], 1387 + "isUnique": true, 1388 + "concurrently": false, 1389 + "method": "btree", 1390 + "with": {} 1391 + } 1392 + }, 1393 + "foreignKeys": { 1394 + "ssh_keys_sandbox_id_sandboxes_id_fk": { 1395 + "name": "ssh_keys_sandbox_id_sandboxes_id_fk", 1396 + "tableFrom": "ssh_keys", 1397 + "tableTo": "sandboxes", 1398 + "columnsFrom": [ 1399 + "sandbox_id" 1400 + ], 1401 + "columnsTo": [ 1402 + "id" 1403 + ], 1404 + "onDelete": "cascade", 1405 + "onUpdate": "no action" 1406 + } 1407 + }, 1408 + "compositePrimaryKeys": {}, 1409 + "uniqueConstraints": {}, 1410 + "policies": {}, 1411 + "checkConstraints": {}, 1412 + "isRLSEnabled": false 1413 + }, 1414 + "public.tailscale_auth_keys": { 1415 + "name": "tailscale_auth_keys", 1416 + "schema": "", 1417 + "columns": { 1418 + "id": { 1419 + "name": "id", 1420 + "type": "text", 1421 + "primaryKey": true, 1422 + "notNull": true, 1423 + "default": "xata_id()" 1424 + }, 1425 + "sandbox_id": { 1426 + "name": "sandbox_id", 1427 + "type": "text", 1428 + "primaryKey": false, 1429 + "notNull": true 1430 + }, 1431 + "auth_key": { 1432 + "name": "auth_key", 1433 + "type": "text", 1434 + "primaryKey": false, 1435 + "notNull": true 1436 + }, 1437 + "redacted": { 1438 + "name": "redacted", 1439 + "type": "text", 1440 + "primaryKey": false, 1441 + "notNull": true 1442 + }, 1443 + "created_at": { 1444 + "name": "created_at", 1445 + "type": "timestamp", 1446 + "primaryKey": false, 1447 + "notNull": true, 1448 + "default": "now()" 1449 + } 1450 + }, 1451 + "indexes": {}, 1452 + "foreignKeys": { 1453 + "tailscale_auth_keys_sandbox_id_sandboxes_id_fk": { 1454 + "name": "tailscale_auth_keys_sandbox_id_sandboxes_id_fk", 1455 + "tableFrom": "tailscale_auth_keys", 1456 + "tableTo": "sandboxes", 1457 + "columnsFrom": [ 1458 + "sandbox_id" 1459 + ], 1460 + "columnsTo": [ 1461 + "id" 1462 + ], 1463 + "onDelete": "cascade", 1464 + "onUpdate": "no action" 1465 + } 1466 + }, 1467 + "compositePrimaryKeys": {}, 1468 + "uniqueConstraints": {}, 1469 + "policies": {}, 1470 + "checkConstraints": {}, 1471 + "isRLSEnabled": false 1472 + }, 1473 + "public.users": { 1474 + "name": "users", 1475 + "schema": "", 1476 + "columns": { 1477 + "id": { 1478 + "name": "id", 1479 + "type": "text", 1480 + "primaryKey": true, 1481 + "notNull": true, 1482 + "default": "xata_id()" 1483 + }, 1484 + "did": { 1485 + "name": "did", 1486 + "type": "text", 1487 + "primaryKey": false, 1488 + "notNull": true 1489 + }, 1490 + "display_name": { 1491 + "name": "display_name", 1492 + "type": "text", 1493 + "primaryKey": false, 1494 + "notNull": false 1495 + }, 1496 + "handle": { 1497 + "name": "handle", 1498 + "type": "text", 1499 + "primaryKey": false, 1500 + "notNull": true 1501 + }, 1502 + "avatar": { 1503 + "name": "avatar", 1504 + "type": "text", 1505 + "primaryKey": false, 1506 + "notNull": false 1507 + }, 1508 + "created_at": { 1509 + "name": "created_at", 1510 + "type": "timestamp", 1511 + "primaryKey": false, 1512 + "notNull": true, 1513 + "default": "now()" 1514 + }, 1515 + "updated_at": { 1516 + "name": "updated_at", 1517 + "type": "timestamp", 1518 + "primaryKey": false, 1519 + "notNull": true, 1520 + "default": "now()" 1521 + } 1522 + }, 1523 + "indexes": {}, 1524 + "foreignKeys": {}, 1525 + "compositePrimaryKeys": {}, 1526 + "uniqueConstraints": { 1527 + "users_did_unique": { 1528 + "name": "users_did_unique", 1529 + "nullsNotDistinct": false, 1530 + "columns": [ 1531 + "did" 1532 + ] 1533 + }, 1534 + "users_handle_unique": { 1535 + "name": "users_handle_unique", 1536 + "nullsNotDistinct": false, 1537 + "columns": [ 1538 + "handle" 1539 + ] 1540 + } 1541 + }, 1542 + "policies": {}, 1543 + "checkConstraints": {}, 1544 + "isRLSEnabled": false 1545 + }, 1546 + "public.variables": { 1547 + "name": "variables", 1548 + "schema": "", 1549 + "columns": { 1550 + "id": { 1551 + "name": "id", 1552 + "type": "text", 1553 + "primaryKey": true, 1554 + "notNull": true, 1555 + "default": "variable_id()" 1556 + }, 1557 + "name": { 1558 + "name": "name", 1559 + "type": "text", 1560 + "primaryKey": false, 1561 + "notNull": true 1562 + }, 1563 + "value": { 1564 + "name": "value", 1565 + "type": "text", 1566 + "primaryKey": false, 1567 + "notNull": true 1568 + }, 1569 + "created_at": { 1570 + "name": "created_at", 1571 + "type": "timestamp", 1572 + "primaryKey": false, 1573 + "notNull": true, 1574 + "default": "now()" 1575 + }, 1576 + "updated_at": { 1577 + "name": "updated_at", 1578 + "type": "timestamp", 1579 + "primaryKey": false, 1580 + "notNull": true, 1581 + "default": "now()" 1582 + } 1583 + }, 1584 + "indexes": {}, 1585 + "foreignKeys": {}, 1586 + "compositePrimaryKeys": {}, 1587 + "uniqueConstraints": {}, 1588 + "policies": {}, 1589 + "checkConstraints": {}, 1590 + "isRLSEnabled": false 1591 + }, 1592 + "public.vercel_auth": { 1593 + "name": "vercel_auth", 1594 + "schema": "", 1595 + "columns": { 1596 + "id": { 1597 + "name": "id", 1598 + "type": "text", 1599 + "primaryKey": true, 1600 + "notNull": true, 1601 + "default": "xata_id()" 1602 + }, 1603 + "sandbox_id": { 1604 + "name": "sandbox_id", 1605 + "type": "text", 1606 + "primaryKey": false, 1607 + "notNull": true 1608 + }, 1609 + "user_id": { 1610 + "name": "user_id", 1611 + "type": "text", 1612 + "primaryKey": false, 1613 + "notNull": true 1614 + }, 1615 + "vercel_token": { 1616 + "name": "vercel_token", 1617 + "type": "text", 1618 + "primaryKey": false, 1619 + "notNull": true 1620 + }, 1621 + "redacted_vercel_token": { 1622 + "name": "redacted_vercel_token", 1623 + "type": "text", 1624 + "primaryKey": false, 1625 + "notNull": true 1626 + }, 1627 + "created_at": { 1628 + "name": "created_at", 1629 + "type": "timestamp", 1630 + "primaryKey": false, 1631 + "notNull": true, 1632 + "default": "now()" 1633 + } 1634 + }, 1635 + "indexes": { 1636 + "unique_vercel_auth": { 1637 + "name": "unique_vercel_auth", 1638 + "columns": [ 1639 + { 1640 + "expression": "sandbox_id", 1641 + "isExpression": false, 1642 + "asc": true, 1643 + "nulls": "last" 1644 + }, 1645 + { 1646 + "expression": "user_id", 1647 + "isExpression": false, 1648 + "asc": true, 1649 + "nulls": "last" 1650 + } 1651 + ], 1652 + "isUnique": true, 1653 + "concurrently": false, 1654 + "method": "btree", 1655 + "with": {} 1656 + } 1657 + }, 1658 + "foreignKeys": { 1659 + "vercel_auth_sandbox_id_sandboxes_id_fk": { 1660 + "name": "vercel_auth_sandbox_id_sandboxes_id_fk", 1661 + "tableFrom": "vercel_auth", 1662 + "tableTo": "sandboxes", 1663 + "columnsFrom": [ 1664 + "sandbox_id" 1665 + ], 1666 + "columnsTo": [ 1667 + "id" 1668 + ], 1669 + "onDelete": "cascade", 1670 + "onUpdate": "no action" 1671 + }, 1672 + "vercel_auth_user_id_users_id_fk": { 1673 + "name": "vercel_auth_user_id_users_id_fk", 1674 + "tableFrom": "vercel_auth", 1675 + "tableTo": "users", 1676 + "columnsFrom": [ 1677 + "user_id" 1678 + ], 1679 + "columnsTo": [ 1680 + "id" 1681 + ], 1682 + "onDelete": "no action", 1683 + "onUpdate": "no action" 1684 + } 1685 + }, 1686 + "compositePrimaryKeys": {}, 1687 + "uniqueConstraints": {}, 1688 + "policies": {}, 1689 + "checkConstraints": {}, 1690 + "isRLSEnabled": false 1691 + }, 1692 + "public.volumes": { 1693 + "name": "volumes", 1694 + "schema": "", 1695 + "columns": { 1696 + "id": { 1697 + "name": "id", 1698 + "type": "text", 1699 + "primaryKey": true, 1700 + "notNull": true, 1701 + "default": "volume_id()" 1702 + }, 1703 + "slug": { 1704 + "name": "slug", 1705 + "type": "text", 1706 + "primaryKey": false, 1707 + "notNull": true 1708 + }, 1709 + "size": { 1710 + "name": "size", 1711 + "type": "integer", 1712 + "primaryKey": false, 1713 + "notNull": true 1714 + }, 1715 + "size_unit": { 1716 + "name": "size_unit", 1717 + "type": "text", 1718 + "primaryKey": false, 1719 + "notNull": true 1720 + }, 1721 + "created_at": { 1722 + "name": "created_at", 1723 + "type": "timestamp", 1724 + "primaryKey": false, 1725 + "notNull": true, 1726 + "default": "now()" 1727 + }, 1728 + "updated_at": { 1729 + "name": "updated_at", 1730 + "type": "timestamp", 1731 + "primaryKey": false, 1732 + "notNull": true, 1733 + "default": "now()" 1734 + } 1735 + }, 1736 + "indexes": {}, 1737 + "foreignKeys": {}, 1738 + "compositePrimaryKeys": {}, 1739 + "uniqueConstraints": { 1740 + "volumes_slug_unique": { 1741 + "name": "volumes_slug_unique", 1742 + "nullsNotDistinct": false, 1743 + "columns": [ 1744 + "slug" 1745 + ] 1746 + } 1747 + }, 1748 + "policies": {}, 1749 + "checkConstraints": {}, 1750 + "isRLSEnabled": false 1751 + }, 1752 + "public.integrations": { 1753 + "name": "integrations", 1754 + "schema": "", 1755 + "columns": { 1756 + "id": { 1757 + "name": "id", 1758 + "type": "text", 1759 + "primaryKey": true, 1760 + "notNull": true, 1761 + "default": "xata_id()" 1762 + }, 1763 + "sandbox_id": { 1764 + "name": "sandbox_id", 1765 + "type": "text", 1766 + "primaryKey": false, 1767 + "notNull": true 1768 + }, 1769 + "name": { 1770 + "name": "name", 1771 + "type": "text", 1772 + "primaryKey": false, 1773 + "notNull": true 1774 + }, 1775 + "description": { 1776 + "name": "description", 1777 + "type": "text", 1778 + "primaryKey": false, 1779 + "notNull": false 1780 + }, 1781 + "webhook_url": { 1782 + "name": "webhook_url", 1783 + "type": "text", 1784 + "primaryKey": false, 1785 + "notNull": true 1786 + }, 1787 + "created_at": { 1788 + "name": "created_at", 1789 + "type": "timestamp", 1790 + "primaryKey": false, 1791 + "notNull": true, 1792 + "default": "now()" 1793 + } 1794 + }, 1795 + "indexes": { 1796 + "unique_sandbox_integration": { 1797 + "name": "unique_sandbox_integration", 1798 + "columns": [ 1799 + { 1800 + "expression": "sandbox_id", 1801 + "isExpression": false, 1802 + "asc": true, 1803 + "nulls": "last" 1804 + }, 1805 + { 1806 + "expression": "name", 1807 + "isExpression": false, 1808 + "asc": true, 1809 + "nulls": "last" 1810 + } 1811 + ], 1812 + "isUnique": true, 1813 + "concurrently": false, 1814 + "method": "btree", 1815 + "with": {} 1816 + } 1817 + }, 1818 + "foreignKeys": { 1819 + "integrations_sandbox_id_sandboxes_id_fk": { 1820 + "name": "integrations_sandbox_id_sandboxes_id_fk", 1821 + "tableFrom": "integrations", 1822 + "tableTo": "sandboxes", 1823 + "columnsFrom": [ 1824 + "sandbox_id" 1825 + ], 1826 + "columnsTo": [ 1827 + "id" 1828 + ], 1829 + "onDelete": "cascade", 1830 + "onUpdate": "no action" 1831 + } 1832 + }, 1833 + "compositePrimaryKeys": {}, 1834 + "uniqueConstraints": {}, 1835 + "policies": {}, 1836 + "checkConstraints": {}, 1837 + "isRLSEnabled": false 1838 + } 1839 + }, 1840 + "enums": {}, 1841 + "schemas": {}, 1842 + "sequences": {}, 1843 + "roles": {}, 1844 + "policies": {}, 1845 + "views": {}, 1846 + "_meta": { 1847 + "columns": {}, 1848 + "schemas": {}, 1849 + "tables": {} 1850 + } 1851 + }
+7
apps/cf-sandbox/drizzle/meta/_journal.json
··· 260 260 "when": 1774776863772, 261 261 "tag": "0036_fine_weapon_omega", 262 262 "breakpoints": true 263 + }, 264 + { 265 + "idx": 37, 266 + "version": "7", 267 + "when": 1774781602578, 268 + "tag": "0037_parallel_ravenous", 269 + "breakpoints": true 263 270 } 264 271 ] 265 272 }
+1
apps/cf-sandbox/src/schema/daytona-auth.ts
··· 16 16 .notNull() 17 17 .references(() => users.id), 18 18 apiKey: text("api_key").notNull(), 19 + redactedApiKey: text("redacted_api_key").notNull(), 19 20 createdAt: timestamp("created_at").defaultNow().notNull(), 20 21 }, 21 22 (t) => [uniqueIndex("unique_daytona_auth").on(t.sandboxId, t.userId)],
+1
apps/cf-sandbox/src/schema/deno-auth.ts
··· 16 16 userId: text("user_id") 17 17 .notNull() 18 18 .references(() => users.id), 19 + redactedDenoToken: text("redacted_deno_token").notNull(), 19 20 createdAt: timestamp("created_at").defaultNow().notNull(), 20 21 }, 21 22 (t) => [uniqueIndex("unique_deno_auth").on(t.sandboxId, t.userId)],
+1
apps/cf-sandbox/src/schema/sprite-auth.ts
··· 16 16 .notNull() 17 17 .references(() => users.id), 18 18 spriteToken: text("sprite_token").notNull(), 19 + redactedSpriteToken: text("redacted_sprite_token").notNull(), 19 20 createdAt: timestamp("created_at").defaultNow().notNull(), 20 21 }, 21 22 (t) => [uniqueIndex("unique_sprite_auth").on(t.sandboxId, t.userId)],
+1
apps/cf-sandbox/src/schema/vercel-auth.ts
··· 16 16 .notNull() 17 17 .references(() => users.id), 18 18 vercelToken: text("vercel_token").notNull(), 19 + redactedVercelToken: text("redacted_vercel_token").notNull(), 19 20 createdAt: timestamp("created_at").defaultNow().notNull(), 20 21 }, 21 22 (t) => [uniqueIndex("unique_vercel_auth").on(t.sandboxId, t.userId)],
+1
apps/sandbox/src/schema/daytona-auth.ts
··· 16 16 .notNull() 17 17 .references(() => users.id), 18 18 apiKey: text("api_key").notNull(), 19 + redactedApiKey: text("redacted_api_key").notNull(), 19 20 createdAt: timestamp("created_at").defaultNow().notNull(), 20 21 }, 21 22 (t) => [uniqueIndex("unique_daytona_auth").on(t.sandboxId, t.userId)],
+1
apps/sandbox/src/schema/deno-auth.ts
··· 16 16 userId: text("user_id") 17 17 .notNull() 18 18 .references(() => users.id), 19 + redactedDenoToken: text("redacted_deno_token").notNull(), 19 20 createdAt: timestamp("created_at").defaultNow().notNull(), 20 21 }, 21 22 (t) => [uniqueIndex("unique_deno_auth").on(t.sandboxId, t.userId)],
+1
apps/sandbox/src/schema/sprite-auth.ts
··· 16 16 .notNull() 17 17 .references(() => users.id), 18 18 spriteToken: text("sprite_token").notNull(), 19 + redactedSpriteToken: text("redacted_sprite_token").notNull(), 19 20 createdAt: timestamp("created_at").defaultNow().notNull(), 20 21 }, 21 22 (t) => [uniqueIndex("unique_sprite_auth").on(t.sandboxId, t.userId)],
+1
apps/sandbox/src/schema/vercel-auth.ts
··· 16 16 .notNull() 17 17 .references(() => users.id), 18 18 vercelToken: text("vercel_token").notNull(), 19 + redactedVercelToken: text("redacted_vercel_token").notNull(), 19 20 createdAt: timestamp("created_at").defaultNow().notNull(), 20 21 }, 21 22 (t) => [uniqueIndex("unique_vercel_auth").on(t.sandboxId, t.userId)],