Wrappers.constants.ts4613 lines · main
1import type { ServerOption, WrapperMeta } from './Wrappers.types'
2import { BASE_PATH, DOCS_URL } from '@/lib/constants'
3
4export const WRAPPER_HANDLERS = {
5 STRIPE: 'stripe_fdw_handler',
6 FIREBASE: 'firebase_fdw_handler',
7 S3: 's3_fdw_handler',
8 S3_VECTORS: 's3_vectors_fdw_handler',
9 CLICK_HOUSE: 'click_house_fdw_handler',
10 BIG_QUERY: 'big_query_fdw_handler',
11 AIRTABLE: 'airtable_fdw_handler',
12 LOGFLARE: 'logflare_fdw_handler',
13 AUTH0: 'auth0_fdw_handler',
14 COGNITO: 'cognito_fdw_handler',
15 MSSQL: 'mssql_fdw_handler',
16 REDIS: 'redis_fdw_handler',
17 ICEBERG: 'iceberg_fdw_handler',
18 PADDLE: 'wasm_fdw_handler',
19 SNOWFLAKE: 'wasm_fdw_handler',
20 CAL: 'wasm_fdw_handler',
21 CALENDLY: 'wasm_fdw_handler',
22 CLERK: 'wasm_fdw_handler',
23 NOTION: 'wasm_fdw_handler',
24 SLACK: 'wasm_fdw_handler',
25 CLOUDFLARE_D1: 'wasm_fdw_handler',
26 HUBSPOT: 'wasm_fdw_handler',
27 ORB: 'wasm_fdw_handler',
28}
29
30export const BRIVEN_TARGET_SCHEMA_OPTION: ServerOption = {
31 name: 'briven_target_schema',
32 label: 'Target Schema',
33 required: false,
34 encrypted: false,
35 secureEntry: false,
36 readOnly: true,
37 hidden: true,
38}
39
40export const WRAPPERS: WrapperMeta[] = [
41 {
42 name: 'stripe_wrapper',
43 handlerName: WRAPPER_HANDLERS.STRIPE,
44 validatorName: 'stripe_fdw_validator',
45 icon: `${BASE_PATH}/img/icons/stripe-icon.svg`,
46 description: 'Payment processing and subscription management',
47 extensionName: 'StripeFdw',
48 label: 'Stripe',
49 docsUrl: `${DOCS_URL}/guides/database/extensions/wrappers/stripe`,
50 server: {
51 options: [
52 {
53 name: 'api_key_id',
54 label: 'Stripe Secret Key',
55 required: true,
56 encrypted: true,
57 secureEntry: true,
58 urlHelper: 'https://stripe.com/docs/keys',
59 },
60 {
61 name: 'api_url',
62 label: 'Stripe API URL',
63 defaultValue: 'https://api.stripe.com/v1',
64 required: false,
65 encrypted: false,
66 secureEntry: false,
67 },
68 BRIVEN_TARGET_SCHEMA_OPTION,
69 ],
70 },
71 tables: [
72 {
73 label: 'Accounts',
74 description: 'List of accounts on your Stripe account',
75 availableColumns: [
76 {
77 name: 'id',
78 type: 'text',
79 },
80 {
81 name: 'business_type',
82 type: 'text',
83 },
84 {
85 name: 'country',
86 type: 'text',
87 },
88 {
89 name: 'email',
90 type: 'text',
91 },
92 {
93 name: 'type',
94 type: 'text',
95 },
96 {
97 name: 'created',
98 type: 'timestamp',
99 },
100 {
101 name: 'attrs',
102 type: 'jsonb',
103 },
104 ],
105 options: [
106 {
107 name: 'object',
108 defaultValue: 'accounts',
109 editable: false,
110 required: true,
111 type: 'text',
112 },
113 {
114 name: 'rowid_column',
115 label: 'Row ID Column',
116 defaultValue: 'id',
117 editable: true,
118 required: true,
119 type: 'text',
120 },
121 ],
122 },
123 {
124 label: 'Balance',
125 description: 'The balance currently on your Stripe account',
126 availableColumns: [
127 {
128 name: 'balance_type',
129 type: 'text',
130 },
131 {
132 name: 'amount',
133 type: 'bigint',
134 },
135 {
136 name: 'currency',
137 type: 'text',
138 },
139 {
140 name: 'attrs',
141 type: 'jsonb',
142 },
143 ],
144 options: [
145 {
146 name: 'object',
147 defaultValue: 'balance',
148 editable: false,
149 required: true,
150 type: 'text',
151 },
152 ],
153 },
154 {
155 label: 'Balance Transactions',
156 description: 'Transactions that have contributed to the balance on your Stripe account',
157 availableColumns: [
158 {
159 name: 'id',
160 type: 'text',
161 },
162 {
163 name: 'amount',
164 type: 'bigint',
165 },
166 {
167 name: 'currency',
168 type: 'text',
169 },
170 {
171 name: 'description',
172 type: 'text',
173 },
174 {
175 name: 'fee',
176 type: 'bigint',
177 },
178 {
179 name: 'net',
180 type: 'bigint',
181 },
182 {
183 name: 'status',
184 type: 'text',
185 },
186 {
187 name: 'type',
188 type: 'text',
189 },
190 {
191 name: 'created',
192 type: 'timestamp',
193 },
194 {
195 name: 'attrs',
196 type: 'jsonb',
197 },
198 ],
199 options: [
200 {
201 name: 'object',
202 defaultValue: 'balance_transactions',
203 editable: false,
204 required: true,
205 type: 'text',
206 },
207 ],
208 },
209 {
210 label: 'Charges',
211 description: 'Charges made on your Stripe account',
212 availableColumns: [
213 {
214 name: 'id',
215 type: 'text',
216 },
217 {
218 name: 'amount',
219 type: 'bigint',
220 },
221 {
222 name: 'currency',
223 type: 'text',
224 },
225 {
226 name: 'customer',
227 type: 'text',
228 },
229 {
230 name: 'description',
231 type: 'text',
232 },
233 {
234 name: 'invoice',
235 type: 'text',
236 },
237 {
238 name: 'payment_intent',
239 type: 'text',
240 },
241 {
242 name: 'status',
243 type: 'text',
244 },
245 {
246 name: 'created',
247 type: 'timestamp',
248 },
249 {
250 name: 'attrs',
251 type: 'jsonb',
252 },
253 ],
254 options: [
255 {
256 name: 'object',
257 defaultValue: 'charges',
258 editable: false,
259 required: true,
260 type: 'text',
261 },
262 ],
263 },
264 {
265 label: 'Checkout Sessions',
266 description:
267 "Customer's session as they pay for one-time purchases or subscriptions through Checkout or Payment Links",
268 availableColumns: [
269 {
270 name: 'id',
271 type: 'text',
272 },
273 {
274 name: 'customer',
275 type: 'text',
276 },
277 {
278 name: 'payment_intent',
279 type: 'text',
280 },
281 {
282 name: 'subscription',
283 type: 'text',
284 },
285 {
286 name: 'attrs',
287 type: 'jsonb',
288 },
289 ],
290 options: [
291 {
292 name: 'object',
293 defaultValue: 'checkout/sessions',
294 editable: false,
295 required: true,
296 type: 'text',
297 },
298 {
299 name: 'rowid_column',
300 label: 'Row ID Column',
301 defaultValue: 'id',
302 editable: true,
303 required: true,
304 type: 'text',
305 },
306 ],
307 },
308 {
309 label: 'Customers',
310 description: 'Customers on your Stripe account',
311 availableColumns: [
312 {
313 name: 'id',
314 type: 'text',
315 },
316 {
317 name: 'email',
318 type: 'text',
319 },
320 {
321 name: 'name',
322 type: 'text',
323 },
324 {
325 name: 'description',
326 type: 'text',
327 },
328 {
329 name: 'created',
330 type: 'timestamp',
331 },
332 {
333 name: 'attrs',
334 type: 'jsonb',
335 },
336 ],
337 options: [
338 {
339 name: 'object',
340 defaultValue: 'customers',
341 editable: false,
342 required: true,
343 type: 'text',
344 },
345 {
346 name: 'rowid_column',
347 label: 'Row ID Column',
348 defaultValue: 'id',
349 editable: true,
350 required: true,
351 type: 'text',
352 },
353 ],
354 },
355 {
356 label: 'Disputes',
357 description: 'When a customer questions your charge with their card issuer',
358 availableColumns: [
359 {
360 name: 'id',
361 type: 'text',
362 },
363 {
364 name: 'amount',
365 type: 'bigint',
366 },
367 {
368 name: 'currency',
369 type: 'text',
370 },
371 {
372 name: 'charge',
373 type: 'text',
374 },
375 {
376 name: 'payment_intent',
377 type: 'text',
378 },
379 {
380 name: 'reason',
381 type: 'text',
382 },
383 {
384 name: 'status',
385 type: 'text',
386 },
387 {
388 name: 'created',
389 type: 'timestamp',
390 },
391 {
392 name: 'attrs',
393 type: 'jsonb',
394 },
395 ],
396 options: [
397 {
398 name: 'object',
399 defaultValue: 'disputes',
400 editable: false,
401 required: true,
402 type: 'text',
403 },
404 ],
405 },
406 {
407 label: 'Events',
408 description:
409 "Stripe's way of letting you know when something interesting happens in your account",
410 availableColumns: [
411 {
412 name: 'id',
413 type: 'text',
414 },
415 {
416 name: 'type',
417 type: 'text',
418 },
419 {
420 name: 'api_version',
421 type: 'text',
422 },
423 {
424 name: 'created',
425 type: 'timestamp',
426 },
427 {
428 name: 'attrs',
429 type: 'jsonb',
430 },
431 ],
432 options: [
433 {
434 name: 'object',
435 defaultValue: 'events',
436 editable: false,
437 required: true,
438 type: 'text',
439 },
440 ],
441 },
442 {
443 label: 'Files',
444 description: "Files that are hosted on Stripe's servers",
445 availableColumns: [
446 {
447 name: 'id',
448 type: 'text',
449 },
450 {
451 name: 'filename',
452 type: 'text',
453 },
454 {
455 name: 'purpose',
456 type: 'text',
457 },
458 {
459 name: 'title',
460 type: 'text',
461 },
462 {
463 name: 'size',
464 type: 'bigint',
465 },
466 {
467 name: 'type',
468 type: 'text',
469 },
470 {
471 name: 'url',
472 type: 'text',
473 },
474 {
475 name: 'created',
476 type: 'timestamp',
477 },
478 {
479 name: 'expires_at',
480 type: 'timestamp',
481 },
482 {
483 name: 'attrs',
484 type: 'jsonb',
485 },
486 ],
487 options: [
488 {
489 name: 'object',
490 defaultValue: 'files',
491 editable: false,
492 required: true,
493 type: 'text',
494 },
495 ],
496 },
497 {
498 label: 'File Links',
499 description: 'For sharing contents of a File object with non-Stripe users',
500 availableColumns: [
501 {
502 name: 'id',
503 type: 'text',
504 },
505 {
506 name: 'file',
507 type: 'text',
508 },
509 {
510 name: 'url',
511 type: 'text',
512 },
513 {
514 name: 'created',
515 type: 'timestamp',
516 },
517 {
518 name: 'expired',
519 type: 'bool',
520 },
521 {
522 name: 'expires_at',
523 type: 'timestamp',
524 },
525 {
526 name: 'attrs',
527 type: 'jsonb',
528 },
529 ],
530 options: [
531 {
532 name: 'object',
533 defaultValue: 'file_links',
534 editable: false,
535 required: true,
536 type: 'text',
537 },
538 ],
539 },
540 {
541 label: 'Invoices',
542 description: 'Invoices on your Stripe account',
543 availableColumns: [
544 {
545 name: 'id',
546 type: 'text',
547 },
548 {
549 name: 'customer',
550 type: 'text',
551 },
552 {
553 name: 'subscription',
554 type: 'text',
555 },
556 {
557 name: 'status',
558 type: 'text',
559 },
560 {
561 name: 'total',
562 type: 'bigint',
563 },
564 {
565 name: 'currency',
566 type: 'text',
567 },
568 {
569 name: 'period_start',
570 type: 'timestamp',
571 },
572 {
573 name: 'period_end',
574 type: 'timestamp',
575 },
576 {
577 name: 'attrs',
578 type: 'jsonb',
579 },
580 ],
581 options: [
582 {
583 name: 'object',
584 defaultValue: 'invoices',
585 editable: false,
586 required: true,
587 type: 'text',
588 },
589 ],
590 },
591 {
592 label: 'Mandates',
593 description:
594 'Records of the permission a customer has given you to debit their payment method',
595 availableColumns: [
596 {
597 name: 'id',
598 type: 'text',
599 },
600 {
601 name: 'payment_method',
602 type: 'text',
603 },
604 {
605 name: 'status',
606 type: 'text',
607 },
608 {
609 name: 'type',
610 type: 'text',
611 },
612 {
613 name: 'attrs',
614 type: 'jsonb',
615 },
616 ],
617 options: [
618 {
619 name: 'object',
620 defaultValue: 'mandates',
621 editable: false,
622 required: true,
623 type: 'text',
624 },
625 ],
626 },
627 {
628 label: 'Meters',
629 description: 'Records for tracking event usage in billing',
630 availableColumns: [
631 {
632 name: 'id',
633 type: 'text',
634 },
635 {
636 name: 'display_name',
637 type: 'text',
638 },
639 {
640 name: 'event_name',
641 type: 'text',
642 },
643 {
644 name: 'event_time_window',
645 type: 'text',
646 },
647 {
648 name: 'status',
649 type: 'text',
650 },
651 {
652 name: 'attrs',
653 type: 'jsonb',
654 },
655 ],
656 options: [
657 {
658 name: 'object',
659 defaultValue: 'billing/meters',
660 editable: false,
661 required: true,
662 type: 'text',
663 },
664 ],
665 },
666 {
667 label: 'Payment Intents',
668 description: 'Payment Intents on your Stripe account',
669 availableColumns: [
670 {
671 name: 'id',
672 type: 'text',
673 },
674 {
675 name: 'customer',
676 type: 'text',
677 },
678 {
679 name: 'amount',
680 type: 'bigint',
681 },
682 {
683 name: 'currency',
684 type: 'text',
685 },
686 {
687 name: 'payment_method',
688 type: 'text',
689 },
690 {
691 name: 'created',
692 type: 'timestamp',
693 },
694 {
695 name: 'attrs',
696 type: 'jsonb',
697 },
698 ],
699 options: [
700 {
701 name: 'object',
702 defaultValue: 'payment_intents',
703 editable: false,
704 required: true,
705 type: 'text',
706 },
707 ],
708 },
709 {
710 label: 'Payouts',
711 description:
712 'Created when you receive funds from Stripe, or when you initiate a payout to either a bank account or debit card',
713 availableColumns: [
714 {
715 name: 'id',
716 type: 'text',
717 },
718 {
719 name: 'amount',
720 type: 'bigint',
721 },
722 {
723 name: 'currency',
724 type: 'text',
725 },
726 {
727 name: 'arrival_date',
728 type: 'timestamp',
729 },
730 {
731 name: 'description',
732 type: 'text',
733 },
734 {
735 name: 'statement_descriptor',
736 type: 'text',
737 },
738 {
739 name: 'status',
740 type: 'text',
741 },
742 {
743 name: 'created',
744 type: 'timestamp',
745 },
746 {
747 name: 'attrs',
748 type: 'jsonb',
749 },
750 ],
751 options: [
752 {
753 name: 'object',
754 defaultValue: 'payouts',
755 editable: false,
756 required: true,
757 type: 'text',
758 },
759 ],
760 },
761 {
762 label: 'Prices',
763 description:
764 'A Price object is needed for all your products to facilitate multiple currencies and pricing options',
765 availableColumns: [
766 {
767 name: 'id',
768 type: 'text',
769 },
770 {
771 name: 'active',
772 type: 'bool',
773 },
774 {
775 name: 'currency',
776 type: 'text',
777 },
778 {
779 name: 'product',
780 type: 'text',
781 },
782 {
783 name: 'unit_amount',
784 type: 'bigint',
785 },
786 {
787 name: 'type',
788 type: 'text',
789 },
790 {
791 name: 'created',
792 type: 'timestamp',
793 },
794 {
795 name: 'attrs',
796 type: 'jsonb',
797 },
798 ],
799 options: [
800 {
801 name: 'object',
802 defaultValue: 'prices',
803 editable: false,
804 required: true,
805 type: 'text',
806 },
807 ],
808 },
809 {
810 label: 'Products',
811 description: 'Products on your Stripe account',
812 availableColumns: [
813 {
814 name: 'id',
815 type: 'text',
816 },
817 {
818 name: 'name',
819 type: 'text',
820 },
821 {
822 name: 'active',
823 type: 'bool',
824 },
825 {
826 name: 'default_price',
827 type: 'text',
828 },
829 {
830 name: 'description',
831 type: 'text',
832 },
833 {
834 name: 'created',
835 type: 'timestamp',
836 },
837 {
838 name: 'updated',
839 type: 'timestamp',
840 },
841 {
842 name: 'attrs',
843 type: 'jsonb',
844 },
845 ],
846 options: [
847 {
848 name: 'object',
849 defaultValue: 'products',
850 editable: false,
851 required: true,
852 type: 'text',
853 },
854 {
855 name: 'rowid_column',
856 label: 'Row ID Column',
857 defaultValue: 'id',
858 editable: true,
859 required: true,
860 type: 'text',
861 },
862 ],
863 },
864 {
865 label: 'Refunds',
866 description:
867 'Allows you to refund a charge that has previously been created but not yet refunded',
868 availableColumns: [
869 {
870 name: 'id',
871 type: 'text',
872 },
873 {
874 name: 'amount',
875 type: 'bigint',
876 },
877 {
878 name: 'currency',
879 type: 'text',
880 },
881 {
882 name: 'charge',
883 type: 'text',
884 },
885 {
886 name: 'payment_intent',
887 type: 'text',
888 },
889 {
890 name: 'reason',
891 type: 'text',
892 },
893 {
894 name: 'status',
895 type: 'text',
896 },
897 {
898 name: 'created',
899 type: 'timestamp',
900 },
901 {
902 name: 'attrs',
903 type: 'jsonb',
904 },
905 ],
906 options: [
907 {
908 name: 'object',
909 defaultValue: 'refunds',
910 editable: false,
911 required: true,
912 type: 'text',
913 },
914 ],
915 },
916 {
917 label: 'Setup Attempts',
918 description: 'Attempted confirmations of a SetupIntent, either successful or unsuccessful',
919 availableColumns: [
920 {
921 name: 'id',
922 type: 'text',
923 },
924 {
925 name: 'application',
926 type: 'text',
927 },
928 {
929 name: 'customer',
930 type: 'text',
931 },
932 {
933 name: 'on_behalf_of',
934 type: 'text',
935 },
936 {
937 name: 'payment_method',
938 type: 'text',
939 },
940 {
941 name: 'setup_intent',
942 type: 'text',
943 },
944 {
945 name: 'status',
946 type: 'text',
947 },
948 {
949 name: 'usage',
950 type: 'text',
951 },
952 {
953 name: 'created',
954 type: 'timestamp',
955 },
956 {
957 name: 'attrs',
958 type: 'jsonb',
959 },
960 ],
961 options: [
962 {
963 name: 'object',
964 defaultValue: 'setup_attempts',
965 editable: false,
966 required: true,
967 type: 'text',
968 },
969 ],
970 },
971 {
972 label: 'Setup Intents',
973 description:
974 "Guides you through the process of setting up and saving a customer's payment credentials for future payments",
975 availableColumns: [
976 {
977 name: 'id',
978 type: 'text',
979 },
980 {
981 name: 'client_secret',
982 type: 'text',
983 },
984 {
985 name: 'customer',
986 type: 'text',
987 },
988 {
989 name: 'description',
990 type: 'text',
991 },
992 {
993 name: 'payment_method',
994 type: 'text',
995 },
996 {
997 name: 'status',
998 type: 'text',
999 },
1000 {
1001 name: 'usage',
1002 type: 'text',
1003 },
1004 {
1005 name: 'created',
1006 type: 'timestamp',
1007 },
1008 {
1009 name: 'attrs',
1010 type: 'jsonb',
1011 },
1012 ],
1013 options: [
1014 {
1015 name: 'object',
1016 defaultValue: 'setup_intents',
1017 editable: false,
1018 required: true,
1019 type: 'text',
1020 },
1021 ],
1022 },
1023 {
1024 label: 'Subscriptions',
1025 description: 'Subscriptions on your Stripe account',
1026 availableColumns: [
1027 {
1028 name: 'id',
1029 type: 'text',
1030 },
1031 {
1032 name: 'customer',
1033 type: 'text',
1034 },
1035 {
1036 name: 'currency',
1037 type: 'text',
1038 },
1039 {
1040 name: 'current_period_start',
1041 type: 'timestamp',
1042 },
1043 {
1044 name: 'current_period_end',
1045 type: 'timestamp',
1046 },
1047 {
1048 name: 'attrs',
1049 type: 'jsonb',
1050 },
1051 ],
1052 options: [
1053 {
1054 name: 'object',
1055 defaultValue: 'subscriptions',
1056 editable: false,
1057 required: true,
1058 type: 'text',
1059 },
1060 {
1061 name: 'rowid_column',
1062 label: 'Row ID Column',
1063 defaultValue: 'id',
1064 editable: true,
1065 required: true,
1066 type: 'text',
1067 },
1068 ],
1069 },
1070 {
1071 label: 'Tokens',
1072 description:
1073 'Tokenization is the process Stripe uses to collect sensitive card or bank account details in a secure manner',
1074 availableColumns: [
1075 {
1076 name: 'id',
1077 type: 'text',
1078 },
1079 {
1080 name: 'customer',
1081 type: 'text',
1082 },
1083 {
1084 name: 'currency',
1085 type: 'text',
1086 },
1087 {
1088 name: 'current_period_start',
1089 type: 'timestamp',
1090 },
1091 {
1092 name: 'current_period_end',
1093 type: 'timestamp',
1094 },
1095 {
1096 name: 'attrs',
1097 type: 'jsonb',
1098 },
1099 ],
1100 options: [
1101 {
1102 name: 'object',
1103 defaultValue: 'tokens',
1104 editable: false,
1105 required: true,
1106 type: 'text',
1107 },
1108 ],
1109 },
1110 {
1111 label: 'Top-ups',
1112 description: 'To top up your Stripe balance',
1113 availableColumns: [
1114 {
1115 name: 'id',
1116 type: 'text',
1117 },
1118 {
1119 name: 'amount',
1120 type: 'bigint',
1121 },
1122 {
1123 name: 'currency',
1124 type: 'text',
1125 },
1126 {
1127 name: 'description',
1128 type: 'text',
1129 },
1130 {
1131 name: 'status',
1132 type: 'text',
1133 },
1134 {
1135 name: 'created',
1136 type: 'timestamp',
1137 },
1138 {
1139 name: 'attrs',
1140 type: 'jsonb',
1141 },
1142 ],
1143 options: [
1144 {
1145 name: 'object',
1146 defaultValue: 'topups',
1147 editable: false,
1148 required: true,
1149 type: 'text',
1150 },
1151 ],
1152 },
1153 {
1154 label: 'Transfers',
1155 description: 'When moving funds between Stripe accounts as part of Connect',
1156 availableColumns: [
1157 {
1158 name: 'id',
1159 type: 'text',
1160 },
1161 {
1162 name: 'amount',
1163 type: 'bigint',
1164 },
1165 {
1166 name: 'currency',
1167 type: 'text',
1168 },
1169 {
1170 name: 'description',
1171 type: 'text',
1172 },
1173 {
1174 name: 'destination',
1175 type: 'text',
1176 },
1177 {
1178 name: 'created',
1179 type: 'timestamp',
1180 },
1181 {
1182 name: 'attrs',
1183 type: 'jsonb',
1184 },
1185 ],
1186 options: [
1187 {
1188 name: 'object',
1189 defaultValue: 'transfers',
1190 editable: false,
1191 required: true,
1192 type: 'text',
1193 },
1194 ],
1195 },
1196 ],
1197 canTargetSchema: true,
1198 sourceSchemaOption: {
1199 name: 'source_schema',
1200 label: 'Source Schema',
1201 required: true,
1202 encrypted: false,
1203 secureEntry: false,
1204 readOnly: true,
1205 defaultValue: 'stripe',
1206 },
1207 },
1208 {
1209 name: 'firebase_wrapper',
1210 handlerName: WRAPPER_HANDLERS.FIREBASE,
1211 validatorName: 'firebase_fdw_validator',
1212 icon: `${BASE_PATH}/img/icons/firebase-icon.svg`,
1213 description: 'Backend-as-a-Service with real-time database',
1214 extensionName: 'FirebaseFdw',
1215 label: 'Firebase',
1216 docsUrl: `${DOCS_URL}/guides/database/extensions/wrappers/firebase`,
1217 server: {
1218 options: [
1219 {
1220 name: 'project_id',
1221 label: 'Project ID',
1222 required: true,
1223 encrypted: false,
1224 secureEntry: false,
1225 },
1226 {
1227 name: 'sa_key_id',
1228 label: 'Service Account Key',
1229 required: true,
1230 encrypted: true,
1231 secureEntry: true,
1232 isTextArea: true,
1233 urlHelper: 'https://firebase.google.com/docs/admin/setup#initialize-sdk',
1234 },
1235 ],
1236 },
1237 tables: [
1238 {
1239 label: 'Users',
1240 description: 'Shows your Firebase users',
1241 availableColumns: [
1242 {
1243 name: 'uid',
1244 type: 'text',
1245 },
1246 {
1247 name: 'email',
1248 type: 'text',
1249 },
1250 {
1251 name: 'created_at',
1252 type: 'timestamp',
1253 },
1254 {
1255 name: 'attrs',
1256 type: 'jsonb',
1257 },
1258 ],
1259 options: [
1260 {
1261 name: 'object',
1262 defaultValue: 'auth/users',
1263 editable: false,
1264 required: true,
1265 type: 'text',
1266 },
1267 {
1268 name: 'base_url',
1269 label: 'Base URL',
1270 defaultValue: 'https://identitytoolkit.googleapis.com/v1/projects',
1271 editable: true,
1272 required: true,
1273 type: 'text',
1274 },
1275 {
1276 name: 'limit',
1277 label: 'Limit',
1278 defaultValue: '10000',
1279 editable: true,
1280 required: true,
1281 type: 'text',
1282 },
1283 ],
1284 },
1285 {
1286 label: 'Firestore Collection',
1287 description: 'Map to a Firestore collection',
1288 availableColumns: [
1289 {
1290 name: 'name',
1291 type: 'text',
1292 },
1293 {
1294 name: 'created_at',
1295 type: 'timestamp',
1296 },
1297 {
1298 name: 'updated_at',
1299 type: 'timestamp',
1300 },
1301 {
1302 name: 'attrs',
1303 type: 'jsonb',
1304 },
1305 ],
1306 options: [
1307 {
1308 name: 'object',
1309 label: 'Object',
1310 placeholder: 'firestore/[collection_id]',
1311 editable: true,
1312 required: true,
1313 type: 'text',
1314 },
1315 {
1316 name: 'base_url',
1317 label: 'Base URL',
1318 defaultValue: 'https://firestore.googleapis.com/v1beta1/projects',
1319 editable: true,
1320 required: true,
1321 type: 'text',
1322 },
1323 {
1324 name: 'limit',
1325 label: 'Limit',
1326 defaultValue: '10000',
1327 editable: true,
1328 required: true,
1329 type: 'text',
1330 },
1331 ],
1332 },
1333 ],
1334 },
1335 {
1336 name: 's3_wrapper',
1337 handlerName: WRAPPER_HANDLERS.S3,
1338 validatorName: 's3_fdw_validator',
1339 icon: `${BASE_PATH}/img/icons/s3-icon.svg`,
1340 description: 'Cloud object storage service',
1341 extensionName: 'S3Fdw',
1342 label: 'S3',
1343 docsUrl: `${DOCS_URL}/guides/database/extensions/wrappers/s3`,
1344 server: {
1345 options: [
1346 {
1347 name: 'vault_access_key_id',
1348 label: 'Access Key ID',
1349 required: true,
1350 encrypted: true,
1351 secureEntry: true,
1352 },
1353 {
1354 name: 'vault_secret_access_key',
1355 label: 'Access Key Secret',
1356 required: true,
1357 encrypted: true,
1358 secureEntry: true,
1359 },
1360 {
1361 name: 'aws_region',
1362 label: 'AWS Region',
1363 required: true,
1364 encrypted: false,
1365 secureEntry: false,
1366 defaultValue: 'us-east-1',
1367 },
1368 ],
1369 },
1370 tables: [
1371 {
1372 label: 'S3 File',
1373 description: 'Map to a file in S3 (CSV or JSON only)',
1374 options: [
1375 {
1376 name: 'uri',
1377 label: 'URI',
1378 editable: true,
1379 required: true,
1380 placeholder: 's3://bucket/s3_table.csv',
1381 type: 'text',
1382 },
1383 {
1384 name: 'format',
1385 label: 'Format',
1386 editable: true,
1387 required: true,
1388 type: 'select',
1389 defaultValue: 'csv',
1390 options: [
1391 { label: 'CSV', value: 'csv' },
1392 { label: 'JSONL (JSON Lines)', value: 'jsonl' },
1393 ],
1394 },
1395 {
1396 name: 'has_header',
1397 label: 'Has Header',
1398 editable: true,
1399 required: true,
1400 type: 'select',
1401 defaultValue: 'true',
1402 options: [
1403 { label: 'True', value: 'true' },
1404 { label: 'False', value: 'false' },
1405 ],
1406 },
1407 {
1408 name: 'compress',
1409 label: 'Compression',
1410 editable: true,
1411 required: false,
1412 type: 'select',
1413 options: [{ label: 'GZIP', value: 'gzip' }],
1414 },
1415 ],
1416 },
1417 ],
1418 },
1419 {
1420 name: 's3_vectors_wrapper',
1421 handlerName: WRAPPER_HANDLERS.S3_VECTORS,
1422 validatorName: 's3_vectors_fdw_validator',
1423 icon: `${BASE_PATH}/img/icons/s3-icon.svg`,
1424 description: 'Cloud storage service for high-dimensional vectors',
1425 extensionName: 'S3VectorsFdw',
1426 label: 'S3 Vectors',
1427 docsUrl: `${DOCS_URL}/guides/database/extensions/wrappers/s3-vectors`,
1428 minimumExtensionVersion: '0.5.6',
1429 server: {
1430 options: [
1431 {
1432 name: 'vault_access_key_id',
1433 label: 'Access Key ID',
1434 required: true,
1435 encrypted: true,
1436 secureEntry: true,
1437 },
1438 {
1439 name: 'vault_secret_access_key',
1440 label: 'Access Key Secret',
1441 required: true,
1442 encrypted: true,
1443 secureEntry: true,
1444 },
1445 {
1446 name: 'aws_region',
1447 label: 'AWS Region',
1448 required: true,
1449 encrypted: false,
1450 secureEntry: false,
1451 defaultValue: 'us-east-1',
1452 },
1453 {
1454 name: 'endpoint_url',
1455 label: 'Endpoint URL',
1456 required: false,
1457 encrypted: false,
1458 secureEntry: false,
1459 defaultValue: '',
1460 },
1461 BRIVEN_TARGET_SCHEMA_OPTION,
1462 ],
1463 },
1464 canTargetSchema: true,
1465 tables: [],
1466 },
1467 {
1468 name: 'clickhouse_wrapper',
1469 handlerName: WRAPPER_HANDLERS.CLICK_HOUSE,
1470 validatorName: 'click_house_fdw_validator',
1471 icon: `${BASE_PATH}/img/icons/clickhouse-icon.svg`,
1472 description: 'Column-oriented analytics database',
1473 extensionName: 'ClickHouseFdw',
1474 label: 'ClickHouse',
1475 docsUrl: `${DOCS_URL}/guides/database/extensions/wrappers/clickhouse`,
1476 server: {
1477 options: [
1478 {
1479 name: 'conn_string_id',
1480 label: 'ClickHouse Connection String',
1481 required: true,
1482 encrypted: true,
1483 secureEntry: true,
1484 },
1485 ],
1486 },
1487 tables: [
1488 {
1489 label: 'ClickHouse Table',
1490 description: 'Map to a ClickHouse Table',
1491 options: [
1492 {
1493 name: 'table',
1494 label: 'ClickHouse Table Name',
1495 editable: true,
1496 required: true,
1497 placeholder: 'my_clickhouse_table',
1498 type: 'text',
1499 },
1500 {
1501 name: 'rowid_column',
1502 label: 'Row ID Column',
1503 defaultValue: 'id',
1504 editable: true,
1505 required: true,
1506 type: 'text',
1507 },
1508 ],
1509 },
1510 ],
1511 },
1512 {
1513 name: 'bigquery_wrapper',
1514 handlerName: WRAPPER_HANDLERS.BIG_QUERY,
1515 validatorName: 'big_query_fdw_validator',
1516 icon: `${BASE_PATH}/img/icons/bigquery-icon.svg`,
1517 description: 'Serverless data warehouse and analytics',
1518 extensionName: 'BigQueryFdw',
1519 label: 'BigQuery',
1520 docsUrl: `${DOCS_URL}/guides/database/extensions/wrappers/bigquery`,
1521 server: {
1522 options: [
1523 {
1524 name: 'sa_key_id',
1525 label: 'Service Account Key',
1526 required: true,
1527 encrypted: true,
1528 secureEntry: true,
1529 },
1530 {
1531 name: 'project_id',
1532 label: 'Project ID',
1533 required: true,
1534 encrypted: false,
1535 secureEntry: false,
1536 },
1537 {
1538 name: 'dataset_id',
1539 label: 'Dataset ID',
1540 required: true,
1541 encrypted: false,
1542 secureEntry: false,
1543 },
1544 ],
1545 },
1546 tables: [
1547 {
1548 label: 'BigQuery Table',
1549 description: 'Map to a BigQuery Table',
1550 options: [
1551 {
1552 name: 'table',
1553 label: 'BigQuery Table Name',
1554 editable: true,
1555 required: true,
1556 placeholder: 'my_bigquery_table',
1557 type: 'text',
1558 },
1559 {
1560 name: 'location',
1561 label: 'Location',
1562 defaultValue: 'US',
1563 editable: true,
1564 required: false,
1565 type: 'text',
1566 },
1567 {
1568 name: 'timeout',
1569 label: 'Timeout (ms)',
1570 defaultValue: '30000',
1571 editable: true,
1572 required: false,
1573 type: 'text',
1574 },
1575 {
1576 name: 'rowid_column',
1577 label: 'Row ID Column',
1578 defaultValue: 'id',
1579 editable: true,
1580 required: false,
1581 type: 'text',
1582 },
1583 ],
1584 },
1585 ],
1586 },
1587 {
1588 name: 'airtable_wrapper',
1589 handlerName: WRAPPER_HANDLERS.AIRTABLE,
1590 validatorName: 'airtable_fdw_validator',
1591 icon: `${BASE_PATH}/img/icons/airtable-icon.svg`,
1592 description: 'No-code database and spreadsheet platform',
1593 extensionName: 'airtableFdw',
1594 label: 'Airtable',
1595 docsUrl: `${DOCS_URL}/guides/database/extensions/wrappers/airtable`,
1596 server: {
1597 options: [
1598 {
1599 name: 'api_key_id',
1600 label: 'API Key ID',
1601 required: true,
1602 encrypted: true,
1603 secureEntry: true,
1604 },
1605 ],
1606 },
1607 tables: [
1608 {
1609 label: 'Airtable Table',
1610 description: 'Map to an Airtable Table',
1611 options: [
1612 {
1613 name: 'base_id',
1614 label: 'Base ID',
1615 editable: true,
1616 required: true,
1617 type: 'text',
1618 },
1619 {
1620 name: 'table_id',
1621 label: 'Table ID',
1622 editable: true,
1623 required: true,
1624 type: 'text',
1625 },
1626 ],
1627 },
1628 ],
1629 },
1630 {
1631 name: 'logflare_wrapper',
1632 handlerName: WRAPPER_HANDLERS.LOGFLARE,
1633 validatorName: 'logflare_fdw_validator',
1634 icon: `${BASE_PATH}/img/icons/logflare-icon.svg`,
1635 description: 'Log management and analytics service',
1636 extensionName: 'logflareFdw',
1637 label: 'Logflare',
1638 docsUrl: `${DOCS_URL}/guides/database/extensions/wrappers/logflare`,
1639 server: {
1640 options: [
1641 {
1642 name: 'api_key_id',
1643 label: 'API Key ID',
1644 required: true,
1645 encrypted: true,
1646 secureEntry: true,
1647 },
1648 ],
1649 },
1650 tables: [
1651 {
1652 label: 'Logflare Table',
1653 description: 'Map to a Logflare Table',
1654 options: [
1655 {
1656 name: 'endpoint',
1657 label: 'Endpoint',
1658 editable: true,
1659 required: true,
1660 type: 'text',
1661 },
1662 ],
1663 },
1664 ],
1665 },
1666 {
1667 name: 'auth0_wrapper',
1668 handlerName: WRAPPER_HANDLERS.AUTH0,
1669 validatorName: 'auth0_fdw_validator',
1670 icon: `${BASE_PATH}/img/icons/auth0-icon.svg`,
1671 description: 'Identity and access management platform',
1672 extensionName: 'Auth0Fdw',
1673 label: 'Auth0',
1674 docsUrl: `${DOCS_URL}/guides/database/extensions/wrappers/auth0`,
1675 minimumExtensionVersion: '0.3.0',
1676 server: {
1677 options: [
1678 {
1679 name: 'api_key_id',
1680 label: 'Auth0 API key or PAT',
1681 required: true,
1682 encrypted: true,
1683 secureEntry: true,
1684 },
1685 {
1686 name: 'url',
1687 label: 'Auth0 API URL',
1688 defaultValue: 'https://dev-<tenant-id>.us.auth0.com/api/v2/users',
1689 required: false,
1690 encrypted: false,
1691 secureEntry: false,
1692 },
1693 ],
1694 },
1695 tables: [
1696 {
1697 label: 'Users',
1698 description: 'Auth0 Users',
1699 availableColumns: [
1700 {
1701 name: 'user_id',
1702 type: 'text',
1703 },
1704 {
1705 name: 'email',
1706 type: 'text',
1707 },
1708 {
1709 name: 'email_verified',
1710 type: 'boolean',
1711 },
1712 {
1713 name: 'username',
1714 type: 'text',
1715 },
1716 {
1717 name: 'phone_number',
1718 type: 'text',
1719 },
1720 {
1721 name: 'phone_verified',
1722 type: 'boolean',
1723 },
1724 {
1725 name: 'created_at',
1726 type: 'jsonb',
1727 },
1728 {
1729 name: 'updated_at',
1730 type: 'jsonb',
1731 },
1732 {
1733 name: 'identities',
1734 type: 'jsonb',
1735 },
1736 {
1737 name: 'app_metadata',
1738 type: 'jsonb',
1739 },
1740 {
1741 name: 'user_metadata',
1742 type: 'jsonb',
1743 },
1744 {
1745 name: 'picture',
1746 type: 'text',
1747 },
1748 {
1749 name: 'name',
1750 type: 'text',
1751 },
1752 {
1753 name: 'nickname',
1754 type: 'text',
1755 },
1756 {
1757 name: 'multifactor',
1758 type: 'jsonb',
1759 },
1760 {
1761 name: 'last_ip',
1762 type: 'text',
1763 },
1764 {
1765 name: 'last_login',
1766 type: 'jsonb',
1767 },
1768 {
1769 name: 'logins_count',
1770 type: 'integer',
1771 },
1772 {
1773 name: 'blocked',
1774 type: 'boolean',
1775 },
1776 {
1777 name: 'given_name',
1778 type: 'text',
1779 },
1780 {
1781 name: 'family_name',
1782 type: 'text',
1783 },
1784 ],
1785 options: [
1786 {
1787 name: 'object',
1788 defaultValue: 'users',
1789 editable: false,
1790 required: true,
1791 type: 'text',
1792 },
1793 ],
1794 },
1795 ],
1796 },
1797 {
1798 name: 'cognito_wrapper',
1799 handlerName: WRAPPER_HANDLERS.COGNITO,
1800 validatorName: 'cognito_fdw_validator',
1801 icon: `${BASE_PATH}/img/icons/cognito-icon.svg`,
1802 description: 'AWS user authentication and authorization',
1803 extensionName: 'CognitoFdw',
1804 label: 'Cognito',
1805 docsUrl: `${DOCS_URL}/guides/database/extensions/wrappers/cognito`,
1806 minimumExtensionVersion: '0.3.0',
1807 server: {
1808 options: [
1809 {
1810 name: 'aws_access_key_id',
1811 label: 'AWS Access Key ID',
1812 required: true,
1813 encrypted: false,
1814 secureEntry: false,
1815 },
1816 {
1817 name: 'api_key_id',
1818 label: 'AWS Secret Key',
1819 required: true,
1820 encrypted: true,
1821 secureEntry: true,
1822 },
1823 {
1824 name: 'region',
1825 label: 'Region',
1826 required: true,
1827 encrypted: false,
1828 secureEntry: false,
1829 },
1830 {
1831 name: 'user_pool_id',
1832 label: 'User Pool ID',
1833 required: true,
1834 encrypted: false,
1835 secureEntry: false,
1836 },
1837 BRIVEN_TARGET_SCHEMA_OPTION,
1838 ],
1839 },
1840 canTargetSchema: true,
1841 sourceSchemaOption: {
1842 name: 'source_schema',
1843 label: 'Source Schema',
1844 required: true,
1845 encrypted: false,
1846 secureEntry: false,
1847 readOnly: true,
1848 defaultValue: 'cognito',
1849 },
1850 tables: [
1851 {
1852 label: 'Users',
1853 description: 'Cognito Users',
1854 availableColumns: [
1855 {
1856 name: 'email',
1857 type: 'text',
1858 },
1859 {
1860 name: 'created_at',
1861 type: 'text',
1862 },
1863 {
1864 name: 'email_verified',
1865 type: 'boolean',
1866 },
1867 {
1868 name: 'identities',
1869 type: 'jsonb',
1870 },
1871 {
1872 name: 'username',
1873 type: 'text',
1874 },
1875 {
1876 name: 'status',
1877 type: 'text',
1878 },
1879 ],
1880 options: [
1881 {
1882 name: 'object',
1883 defaultValue: 'users',
1884 editable: false,
1885 required: true,
1886 type: 'text',
1887 },
1888 ],
1889 },
1890 ],
1891 },
1892 {
1893 name: 'mssql_wrapper',
1894 handlerName: WRAPPER_HANDLERS.MSSQL,
1895 validatorName: 'mssql_fdw_validator',
1896 icon: `${BASE_PATH}/img/icons/mssql-icon.svg`,
1897 description: 'Microsoft SQL Server database',
1898 extensionName: 'mssqlFdw',
1899 label: 'Microsoft SQL Server',
1900 docsUrl: `${DOCS_URL}/guides/database/extensions/wrappers/mssql`,
1901 minimumExtensionVersion: '0.3.0',
1902 server: {
1903 options: [
1904 {
1905 name: 'conn_string_id',
1906 label: 'Connection String',
1907 required: true,
1908 encrypted: true,
1909 secureEntry: true,
1910 },
1911 ],
1912 },
1913 tables: [
1914 {
1915 label: 'Microsoft SQL Server Table',
1916 description: 'Map to an Microsoft SQL Server Table',
1917 options: [
1918 {
1919 name: 'table',
1920 label: 'MSSQL Table',
1921 editable: true,
1922 required: true,
1923 type: 'text',
1924 },
1925 ],
1926 },
1927 ],
1928 },
1929 {
1930 name: 'redis_wrapper',
1931 handlerName: WRAPPER_HANDLERS.REDIS,
1932 validatorName: 'redis_fdw_validator',
1933 icon: `${BASE_PATH}/img/icons/redis-icon.svg`,
1934 description: 'In-memory data structure store',
1935 extensionName: 'redisFdw',
1936 label: 'Redis',
1937 docsUrl: `${DOCS_URL}/guides/database/extensions/wrappers/redis`,
1938 minimumExtensionVersion: '0.3.0',
1939 server: {
1940 options: [
1941 {
1942 name: 'conn_url_id',
1943 label: 'Connection URL',
1944 required: true,
1945 encrypted: true,
1946 secureEntry: true,
1947 },
1948 ],
1949 },
1950 tables: [
1951 {
1952 label: 'List',
1953 description: 'Redis list data structure',
1954 availableColumns: [
1955 {
1956 name: 'element',
1957 type: 'text',
1958 },
1959 ],
1960 options: [
1961 {
1962 name: 'src_type',
1963 defaultValue: 'list',
1964 editable: false,
1965 required: true,
1966 type: 'text',
1967 },
1968 {
1969 name: 'src_key',
1970 label: 'Source Key',
1971 editable: true,
1972 required: true,
1973 type: 'text',
1974 },
1975 ],
1976 },
1977 {
1978 label: 'Set',
1979 description: 'Redis set data structure',
1980 availableColumns: [
1981 {
1982 name: 'element',
1983 type: 'text',
1984 },
1985 ],
1986 options: [
1987 {
1988 name: 'src_type',
1989 defaultValue: 'set',
1990 editable: false,
1991 required: true,
1992 type: 'text',
1993 },
1994 {
1995 name: 'src_key',
1996 label: 'Source Key',
1997 editable: true,
1998 required: true,
1999 type: 'text',
2000 },
2001 ],
2002 },
2003 {
2004 label: 'Sorted Set (zset)',
2005 description: 'Redis sorted set data structure',
2006 availableColumns: [
2007 {
2008 name: 'element',
2009 type: 'text',
2010 },
2011 ],
2012 options: [
2013 {
2014 name: 'src_type',
2015 defaultValue: 'zset',
2016 editable: false,
2017 required: true,
2018 type: 'text',
2019 },
2020 {
2021 name: 'src_key',
2022 label: 'Source Key',
2023 editable: true,
2024 required: true,
2025 type: 'text',
2026 },
2027 ],
2028 },
2029 {
2030 label: 'Hash',
2031 description: 'Redis hash data structure',
2032 availableColumns: [
2033 {
2034 name: 'key',
2035 type: 'text',
2036 },
2037 {
2038 name: 'value',
2039 type: 'text',
2040 },
2041 ],
2042 options: [
2043 {
2044 name: 'src_type',
2045 defaultValue: 'hash',
2046 editable: false,
2047 required: true,
2048 type: 'text',
2049 },
2050 {
2051 name: 'src_key',
2052 label: 'Source Key',
2053 editable: true,
2054 required: true,
2055 type: 'text',
2056 },
2057 ],
2058 },
2059 {
2060 label: 'Stream',
2061 description: 'Redis stream data structure',
2062 availableColumns: [
2063 {
2064 name: 'id',
2065 type: 'text',
2066 },
2067 {
2068 name: 'items',
2069 type: 'text',
2070 },
2071 ],
2072 options: [
2073 {
2074 name: 'src_type',
2075 defaultValue: 'stream',
2076 editable: false,
2077 required: true,
2078 type: 'text',
2079 },
2080 {
2081 name: 'src_key',
2082 label: 'Source Key',
2083 editable: true,
2084 required: true,
2085 type: 'text',
2086 },
2087 ],
2088 },
2089 {
2090 label: 'Multi List',
2091 description: 'Query multiple Redis lists',
2092 availableColumns: [
2093 {
2094 name: 'key',
2095 type: 'text',
2096 },
2097 {
2098 name: 'items',
2099 type: 'text',
2100 },
2101 ],
2102 options: [
2103 {
2104 name: 'src_type',
2105 defaultValue: 'multi_list',
2106 editable: false,
2107 required: true,
2108 type: 'text',
2109 },
2110 ],
2111 },
2112 {
2113 label: 'Multi Set',
2114 description: 'Query multiple Redis sets',
2115 availableColumns: [
2116 {
2117 name: 'key',
2118 type: 'text',
2119 },
2120 {
2121 name: 'items',
2122 type: 'text',
2123 },
2124 ],
2125 options: [
2126 {
2127 name: 'src_type',
2128 defaultValue: 'multi_set',
2129 editable: false,
2130 required: true,
2131 type: 'text',
2132 },
2133 ],
2134 },
2135 {
2136 label: 'Multi Hash',
2137 description: 'Query multiple Redis hashes',
2138 availableColumns: [
2139 {
2140 name: 'key',
2141 type: 'text',
2142 },
2143 {
2144 name: 'items',
2145 type: 'text',
2146 },
2147 ],
2148 options: [
2149 {
2150 name: 'src_type',
2151 defaultValue: 'multi_hash',
2152 editable: false,
2153 required: true,
2154 type: 'text',
2155 },
2156 ],
2157 },
2158 {
2159 label: 'Multi Sorted Set (multi_zset)',
2160 description: 'Query multiple Redis sorted sets',
2161 availableColumns: [
2162 {
2163 name: 'key',
2164 type: 'text',
2165 },
2166 {
2167 name: 'items',
2168 type: 'text',
2169 },
2170 ],
2171 options: [
2172 {
2173 name: 'src_type',
2174 defaultValue: 'multi_zset',
2175 editable: false,
2176 required: true,
2177 type: 'text',
2178 },
2179 ],
2180 },
2181 ],
2182 },
2183 {
2184 name: 'paddle_wrapper',
2185 handlerName: WRAPPER_HANDLERS.PADDLE,
2186 validatorName: 'wasm_fdw_validator',
2187 icon: `${BASE_PATH}/img/icons/paddle-icon.svg`,
2188 description: 'Subscription billing and payments platform',
2189 extensionName: 'paddleFdw',
2190 label: 'Paddle',
2191 docsUrl: `${DOCS_URL}/guides/database/extensions/wrappers/paddle`,
2192 minimumExtensionVersion: '0.4.0',
2193 server: {
2194 options: [
2195 {
2196 name: 'fdw_package_url',
2197 label: 'FDW Package URL',
2198 required: true,
2199 encrypted: false,
2200 secureEntry: false,
2201 defaultValue:
2202 'https://github.com/briven/wrappers/releases/download/wasm_paddle_fdw_v0.1.1/paddle_fdw.wasm',
2203 hidden: true,
2204 },
2205 {
2206 name: 'fdw_package_name',
2207 label: 'FDW Package Name',
2208 required: true,
2209 encrypted: false,
2210 secureEntry: false,
2211 defaultValue: 'briven:paddle-fdw',
2212 hidden: true,
2213 },
2214 {
2215 name: 'fdw_package_version',
2216 label: 'FDW Package Version',
2217 required: true,
2218 encrypted: false,
2219 secureEntry: false,
2220 defaultValue: '0.1.1',
2221 hidden: true,
2222 },
2223 {
2224 name: 'fdw_package_checksum',
2225 label: 'FDW Package Checksum',
2226 required: true,
2227 encrypted: false,
2228 secureEntry: false,
2229 defaultValue: 'c5ac70bb2eef33693787b7d4efce9a83cde8d4fa40889d2037403a51263ba657',
2230 hidden: true,
2231 },
2232 {
2233 name: 'api_url',
2234 label: 'Paddle API URL',
2235 defaultValue: 'https://api.paddle.com',
2236 required: true,
2237 encrypted: false,
2238 secureEntry: false,
2239 },
2240 {
2241 name: 'api_key_id',
2242 label: 'Paddle API Key',
2243 required: true,
2244 encrypted: true,
2245 secureEntry: true,
2246 },
2247 ],
2248 },
2249 tables: [
2250 {
2251 label: 'Paddle Object',
2252 description: 'Map to an Paddle Object',
2253 options: [
2254 {
2255 name: 'object',
2256 label: 'Object',
2257 editable: true,
2258 required: true,
2259 type: 'select',
2260 defaultValue: 'products',
2261 options: [
2262 { label: 'Products', value: 'products' },
2263 { label: 'Prices', value: 'prices' },
2264 { label: 'Discounts', value: 'discounts' },
2265 { label: 'Customers', value: 'customers' },
2266 { label: 'Transactions', value: 'transactions' },
2267 { label: 'Reports', value: 'reports' },
2268 { label: 'Notification Settings', value: 'notification-settings' },
2269 { label: 'notifications', value: 'notifications' },
2270 ],
2271 },
2272 {
2273 name: 'rowid_column',
2274 label: 'Row ID Column',
2275 defaultValue: 'id',
2276 editable: true,
2277 required: true,
2278 type: 'text',
2279 },
2280 ],
2281 },
2282 ],
2283 },
2284 {
2285 name: 'snowflake_wrapper',
2286 handlerName: WRAPPER_HANDLERS.SNOWFLAKE,
2287 validatorName: 'wasm_fdw_validator',
2288 icon: `${BASE_PATH}/img/icons/snowflake-icon.svg`,
2289 description: 'Cloud data warehouse platform',
2290 extensionName: 'snowflakeFdw',
2291 label: 'Snowflake',
2292 docsUrl: `${DOCS_URL}/guides/database/extensions/wrappers/snowflake`,
2293 minimumExtensionVersion: '0.4.0',
2294 server: {
2295 options: [
2296 {
2297 name: 'fdw_package_url',
2298 label: 'FDW Package URL',
2299 required: true,
2300 encrypted: false,
2301 secureEntry: false,
2302 defaultValue:
2303 'https://github.com/briven/wrappers/releases/download/wasm_snowflake_fdw_v0.1.1/snowflake_fdw.wasm',
2304 hidden: true,
2305 },
2306 {
2307 name: 'fdw_package_name',
2308 label: 'FDW Package Name',
2309 required: true,
2310 encrypted: false,
2311 secureEntry: false,
2312 defaultValue: 'briven:snowflake-fdw',
2313 hidden: true,
2314 },
2315 {
2316 name: 'fdw_package_version',
2317 label: 'FDW Package Version',
2318 required: true,
2319 encrypted: false,
2320 secureEntry: false,
2321 defaultValue: '0.1.1',
2322 hidden: true,
2323 },
2324 {
2325 name: 'fdw_package_checksum',
2326 label: 'FDW Package Checksum',
2327 required: true,
2328 encrypted: false,
2329 secureEntry: false,
2330 defaultValue: '7aaafc7edc1726bc93ddc04452d41bda9e1a264a1df2ea9bf1b00b267543b860',
2331 hidden: true,
2332 },
2333 {
2334 name: 'account_identifier',
2335 label: 'Account Identifier',
2336 required: true,
2337 encrypted: false,
2338 secureEntry: false,
2339 },
2340 {
2341 name: 'user',
2342 label: 'User',
2343 required: true,
2344 encrypted: false,
2345 secureEntry: false,
2346 },
2347 {
2348 name: 'public_key_fingerprint',
2349 label: 'Public Key Fingerprint',
2350 required: true,
2351 encrypted: false,
2352 secureEntry: false,
2353 },
2354 {
2355 name: 'private_key_id',
2356 label: 'Private Key',
2357 required: true,
2358 encrypted: true,
2359 secureEntry: true,
2360 },
2361 ],
2362 },
2363 tables: [
2364 {
2365 label: 'Snowflake Table',
2366 description: 'Map to an Snowflake Table',
2367 options: [
2368 {
2369 name: 'table',
2370 label: 'Table',
2371 editable: true,
2372 required: true,
2373 type: 'text',
2374 },
2375 {
2376 name: 'rowid_column',
2377 label: 'Row ID Column',
2378 defaultValue: 'id',
2379 editable: true,
2380 required: true,
2381 type: 'text',
2382 },
2383 ],
2384 },
2385 ],
2386 },
2387 {
2388 name: 'iceberg_wrapper',
2389 handlerName: WRAPPER_HANDLERS.ICEBERG,
2390 validatorName: 'iceberg_fdw_validator',
2391 icon: `${BASE_PATH}/img/icons/iceberg-icon.svg`,
2392 description: 'Iceberg is a data warehouse',
2393 extensionName: 'icebergFdw',
2394 label: 'Iceberg',
2395 docsUrl: `${DOCS_URL}/guides/database/extensions/wrappers/iceberg`,
2396 minimumExtensionVersion: '0.5.3',
2397 customComponent: true,
2398 server: {
2399 // The fields are intentionally not required. The required flag is enforced in the create iceberg wrapper sheet.
2400 // In the edit wrapper sheet, all fields are shown and not required.
2401 options: [
2402 {
2403 name: 'vault_aws_access_key_id',
2404 label: 'AWS Access Key ID',
2405 required: false,
2406 encrypted: true,
2407 secureEntry: true,
2408 },
2409 {
2410 name: 'vault_aws_secret_access_key',
2411 label: 'AWS Secret Access Key',
2412 required: false,
2413 encrypted: true,
2414 secureEntry: true,
2415 },
2416 {
2417 name: 'region_name',
2418 label: 'Region Name',
2419 required: false,
2420 encrypted: false,
2421 secureEntry: false,
2422 },
2423 {
2424 name: 'vault_aws_s3table_bucket_arn',
2425 label: 'AWS S3 Table Bucket ARN',
2426 required: false,
2427 encrypted: true,
2428 secureEntry: true,
2429 },
2430 {
2431 name: 'vault_token',
2432 label: 'Token',
2433 required: false,
2434 encrypted: true,
2435 secureEntry: true,
2436 },
2437 {
2438 name: 'warehouse',
2439 label: 'Warehouse',
2440 required: false,
2441 encrypted: false,
2442 secureEntry: false,
2443 },
2444 {
2445 name: 's3.endpoint',
2446 label: 'S3 Endpoint',
2447 required: false,
2448 encrypted: false,
2449 secureEntry: false,
2450 },
2451 {
2452 name: 'catalog_uri',
2453 label: 'Catalog URI',
2454 required: false,
2455 encrypted: false,
2456 secureEntry: false,
2457 },
2458 BRIVEN_TARGET_SCHEMA_OPTION,
2459 ],
2460 },
2461 canTargetSchema: true,
2462 sourceSchemaOption: {
2463 name: 'source_schema',
2464 label: 'Namespace',
2465 description: 'It should match the namespace of the Iceberg catalog.',
2466 required: true,
2467 encrypted: false,
2468 secureEntry: false,
2469 defaultValue: '',
2470 },
2471 tables: [],
2472 },
2473 {
2474 name: 'cal_wrapper',
2475 description: 'Cal.com is a scheduling platform',
2476 handlerName: WRAPPER_HANDLERS.CAL,
2477 validatorName: 'wasm_fdw_validator',
2478 icon: `${BASE_PATH}/img/icons/cal-com-icon.svg`,
2479 extensionName: 'calFdw',
2480 label: 'Cal.com',
2481 docsUrl: `${DOCS_URL}/guides/database/extensions/wrappers/cal`,
2482 minimumExtensionVersion: '0.4.0',
2483 server: {
2484 options: [
2485 {
2486 name: 'fdw_package_url',
2487 label: 'FDW Package URL',
2488 required: true,
2489 encrypted: false,
2490 secureEntry: false,
2491 defaultValue:
2492 'https://github.com/briven/wrappers/releases/download/wasm_cal_fdw_v0.1.0/cal_fdw.wasm',
2493 hidden: true,
2494 },
2495 {
2496 name: 'fdw_package_name',
2497 label: 'FDW Package Name',
2498 required: true,
2499 encrypted: false,
2500 secureEntry: false,
2501 defaultValue: 'briven:cal-fdw',
2502 hidden: true,
2503 },
2504 {
2505 name: 'fdw_package_version',
2506 label: 'FDW Package Version',
2507 required: true,
2508 encrypted: false,
2509 secureEntry: false,
2510 defaultValue: '0.1.0',
2511 hidden: true,
2512 },
2513 {
2514 name: 'fdw_package_checksum',
2515 label: 'FDW Package Checksum',
2516 required: true,
2517 encrypted: false,
2518 secureEntry: false,
2519 defaultValue: 'bca8a82d6c5f8da0aa58011940c4ddb40bb2c909c02dd89b488289c4fff890c1',
2520 hidden: true,
2521 },
2522 {
2523 name: 'api_url',
2524 label: 'API URL',
2525 required: false,
2526 encrypted: false,
2527 secureEntry: false,
2528 defaultValue: 'https://api.cal.com/v2',
2529 },
2530 {
2531 name: 'api_key_id',
2532 label: 'API Key ID',
2533 required: true,
2534 encrypted: true,
2535 secureEntry: true,
2536 },
2537 ],
2538 },
2539 tables: [
2540 {
2541 label: 'My Profile',
2542 description: 'Shows your Cal profile',
2543 availableColumns: [
2544 {
2545 name: 'id',
2546 type: 'bigint',
2547 },
2548 {
2549 name: 'username',
2550 type: 'text',
2551 },
2552 {
2553 name: 'email',
2554 type: 'text',
2555 },
2556 {
2557 name: 'attrs',
2558 type: 'jsonb',
2559 },
2560 ],
2561 options: [
2562 {
2563 name: 'object',
2564 defaultValue: 'my_profile',
2565 editable: false,
2566 required: true,
2567 type: 'text',
2568 },
2569 ],
2570 },
2571 {
2572 label: 'Event Types',
2573 description: 'Shows your Event Types',
2574 availableColumns: [
2575 {
2576 name: 'attrs',
2577 type: 'jsonb',
2578 },
2579 ],
2580 options: [
2581 {
2582 name: 'object',
2583 defaultValue: 'event-types',
2584 editable: false,
2585 required: true,
2586 type: 'text',
2587 },
2588 ],
2589 },
2590 {
2591 label: 'Bookings',
2592 description: 'Shows your Bookings',
2593 availableColumns: [
2594 {
2595 name: 'attrs',
2596 type: 'jsonb',
2597 },
2598 ],
2599 options: [
2600 {
2601 name: 'object',
2602 defaultValue: 'bookings',
2603 editable: false,
2604 required: true,
2605 type: 'text',
2606 },
2607 ],
2608 },
2609 {
2610 label: 'Calendars',
2611 description: 'Shows your Calendars',
2612 availableColumns: [
2613 {
2614 name: 'attrs',
2615 type: 'jsonb',
2616 },
2617 ],
2618 options: [
2619 {
2620 name: 'object',
2621 defaultValue: 'calendars',
2622 editable: false,
2623 required: true,
2624 type: 'text',
2625 },
2626 ],
2627 },
2628 {
2629 label: 'Schedules',
2630 description: 'Shows your Schedules',
2631 availableColumns: [
2632 {
2633 name: 'id',
2634 type: 'bigint',
2635 },
2636 {
2637 name: 'name',
2638 type: 'text',
2639 },
2640 {
2641 name: 'attrs',
2642 type: 'jsonb',
2643 },
2644 ],
2645 options: [
2646 {
2647 name: 'object',
2648 defaultValue: 'schedules',
2649 editable: false,
2650 required: true,
2651 type: 'text',
2652 },
2653 ],
2654 },
2655 {
2656 label: 'Conferencing',
2657 description: 'Shows conferencing',
2658 availableColumns: [
2659 {
2660 name: 'id',
2661 type: 'bigint',
2662 },
2663 {
2664 name: 'attrs',
2665 type: 'jsonb',
2666 },
2667 ],
2668 options: [
2669 {
2670 name: 'object',
2671 defaultValue: 'conferencing',
2672 editable: false,
2673 required: true,
2674 type: 'text',
2675 },
2676 ],
2677 },
2678 ],
2679 },
2680 {
2681 name: 'calendly_wrapper',
2682 description: 'Calendly is a scheduling platform',
2683 handlerName: WRAPPER_HANDLERS.CALENDLY,
2684 validatorName: 'wasm_fdw_validator',
2685 icon: `${BASE_PATH}/img/icons/calendly-icon.svg`,
2686 extensionName: 'calendlyFdw',
2687 label: 'Calendly',
2688 docsUrl: `${DOCS_URL}/guides/database/extensions/wrappers/calendly`,
2689 minimumExtensionVersion: '0.4.0',
2690 server: {
2691 options: [
2692 {
2693 name: 'fdw_package_url',
2694 label: 'FDW Package URL',
2695 required: true,
2696 encrypted: false,
2697 secureEntry: false,
2698 defaultValue:
2699 'https://github.com/briven/wrappers/releases/download/wasm_calendly_fdw_v0.1.0/calendly_fdw.wasm',
2700 hidden: true,
2701 },
2702 {
2703 name: 'fdw_package_name',
2704 label: 'FDW Package Name',
2705 required: true,
2706 encrypted: false,
2707 secureEntry: false,
2708 defaultValue: 'briven:calendly-fdw',
2709 hidden: true,
2710 },
2711 {
2712 name: 'fdw_package_version',
2713 label: 'FDW Package Version',
2714 required: true,
2715 encrypted: false,
2716 secureEntry: false,
2717 defaultValue: '0.1.0',
2718 hidden: true,
2719 },
2720 {
2721 name: 'fdw_package_checksum',
2722 label: 'FDW Package Checksum',
2723 required: true,
2724 encrypted: false,
2725 secureEntry: false,
2726 defaultValue: 'aa17f1ce2b48b5d8d6cee4f61df4d6b23e9a333c3e5c7a10cec9aae619c156b9',
2727 hidden: true,
2728 },
2729 {
2730 name: 'organization',
2731 label: 'Organization URL',
2732 required: true,
2733 encrypted: false,
2734 secureEntry: false,
2735 defaultValue:
2736 'https://api.calendly.com/organizations/00000000-0000-0000-0000-000000000000',
2737 },
2738 {
2739 name: 'api_url',
2740 label: 'API URL',
2741 required: false,
2742 encrypted: false,
2743 secureEntry: false,
2744 defaultValue: 'https://api.calendly.com',
2745 },
2746 {
2747 name: 'api_key_id',
2748 label: 'API Key ID',
2749 required: true,
2750 encrypted: true,
2751 secureEntry: true,
2752 },
2753 ],
2754 },
2755 tables: [
2756 {
2757 label: 'Current User',
2758 description: 'Get the current user used for the API request',
2759 availableColumns: [
2760 {
2761 name: 'uri',
2762 type: 'text',
2763 },
2764 {
2765 name: 'slug',
2766 type: 'text',
2767 },
2768 {
2769 name: 'created_at',
2770 type: 'timestamp',
2771 },
2772 {
2773 name: 'updated_at',
2774 type: 'timestamp',
2775 },
2776 {
2777 name: 'attrs',
2778 type: 'jsonb',
2779 },
2780 ],
2781 options: [
2782 {
2783 name: 'object',
2784 defaultValue: 'current_user',
2785 editable: false,
2786 required: true,
2787 type: 'text',
2788 },
2789 ],
2790 },
2791 {
2792 label: 'Event Types',
2793 description: 'Shows your Event Types',
2794 availableColumns: [
2795 {
2796 name: 'uri',
2797 type: 'text',
2798 },
2799 {
2800 name: 'created_at',
2801 type: 'timestamp',
2802 },
2803 {
2804 name: 'updated_at',
2805 type: 'timestamp',
2806 },
2807 {
2808 name: 'attrs',
2809 type: 'jsonb',
2810 },
2811 ],
2812 options: [
2813 {
2814 name: 'object',
2815 defaultValue: 'event_types',
2816 editable: false,
2817 required: true,
2818 type: 'text',
2819 },
2820 ],
2821 },
2822 {
2823 label: 'Groups',
2824 description: 'Shows your groups',
2825 availableColumns: [
2826 {
2827 name: 'uri',
2828 type: 'text',
2829 },
2830 {
2831 name: 'created_at',
2832 type: 'timestamp',
2833 },
2834 {
2835 name: 'updated_at',
2836 type: 'timestamp',
2837 },
2838 {
2839 name: 'attrs',
2840 type: 'jsonb',
2841 },
2842 ],
2843 options: [
2844 {
2845 name: 'object',
2846 defaultValue: 'groups',
2847 editable: false,
2848 required: true,
2849 type: 'text',
2850 },
2851 ],
2852 },
2853 {
2854 label: 'Organization Memberships',
2855 description: 'Shows your Organization Memberships',
2856 availableColumns: [
2857 {
2858 name: 'uri',
2859 type: 'text',
2860 },
2861 {
2862 name: 'created_at',
2863 type: 'timestamp',
2864 },
2865 {
2866 name: 'updated_at',
2867 type: 'timestamp',
2868 },
2869 {
2870 name: 'attrs',
2871 type: 'jsonb',
2872 },
2873 ],
2874 options: [
2875 {
2876 name: 'object',
2877 defaultValue: 'organization_memberships',
2878 editable: false,
2879 required: true,
2880 type: 'text',
2881 },
2882 ],
2883 },
2884 {
2885 label: 'Scheduled Events',
2886 description: 'Shows your scheduled events',
2887 availableColumns: [
2888 {
2889 name: 'uri',
2890 type: 'text',
2891 },
2892 {
2893 name: 'created_at',
2894 type: 'timestamp',
2895 },
2896 {
2897 name: 'updated_at',
2898 type: 'timestamp',
2899 },
2900 {
2901 name: 'attrs',
2902 type: 'jsonb',
2903 },
2904 ],
2905 options: [
2906 {
2907 name: 'object',
2908 defaultValue: 'scheduled_events',
2909 editable: false,
2910 required: true,
2911 type: 'text',
2912 },
2913 ],
2914 },
2915 ],
2916 },
2917 {
2918 name: 'clerk_wrapper',
2919 description: 'User Management Platform',
2920 handlerName: WRAPPER_HANDLERS.CLERK,
2921 validatorName: 'wasm_fdw_validator',
2922 icon: `${BASE_PATH}/img/icons/clerk-icon.svg`,
2923 extensionName: 'clerkFdw',
2924 label: 'Clerk',
2925 docsUrl: `${DOCS_URL}/guides/database/extensions/wrappers/clerk`,
2926 minimumExtensionVersion: '0.4.0',
2927 server: {
2928 options: [
2929 {
2930 name: 'fdw_package_url',
2931 label: 'FDW Package URL',
2932 required: true,
2933 encrypted: false,
2934 secureEntry: false,
2935 defaultValue:
2936 'https://github.com/briven/wrappers/releases/download/wasm_clerk_fdw_v0.1.0/clerk_fdw.wasm',
2937 hidden: true,
2938 },
2939 {
2940 name: 'fdw_package_name',
2941 label: 'FDW Package Name',
2942 required: true,
2943 encrypted: false,
2944 secureEntry: false,
2945 defaultValue: 'briven:clerk-fdw',
2946 hidden: true,
2947 },
2948 {
2949 name: 'fdw_package_version',
2950 label: 'FDW Package Version',
2951 required: true,
2952 encrypted: false,
2953 secureEntry: false,
2954 defaultValue: '0.1.0',
2955 hidden: true,
2956 },
2957 {
2958 name: 'fdw_package_checksum',
2959 label: 'FDW Package Checksum',
2960 required: true,
2961 encrypted: false,
2962 secureEntry: false,
2963 defaultValue: '613be26b59fa4c074e0b93f0db617fcd7b468d4d02edece0b1f85fdb683ebdc4',
2964 hidden: true,
2965 },
2966 {
2967 name: 'api_url',
2968 label: 'Clerk API URL',
2969 required: false,
2970 encrypted: false,
2971 secureEntry: false,
2972 defaultValue: 'https://api.clerk.com/v1',
2973 },
2974 {
2975 name: 'api_key_id',
2976 label: 'Clerk API Key',
2977 required: true,
2978 encrypted: true,
2979 secureEntry: true,
2980 },
2981 ],
2982 },
2983 tables: [
2984 {
2985 label: 'Allow List',
2986 description: 'List of all identifiers allowed to sign up to an instance',
2987 availableColumns: [
2988 { name: 'id', type: 'text' },
2989 { name: 'invitation_id', type: 'text' },
2990 { name: 'identifier', type: 'text' },
2991 { name: 'identifier_type', type: 'text' },
2992 { name: 'instance_id', type: 'text' },
2993 { name: 'created_at', type: 'timestamp' },
2994 { name: 'updated_at', type: 'timestamp' },
2995 { name: 'attrs', type: 'jsonb' },
2996 ],
2997 options: [
2998 {
2999 name: 'object',
3000 defaultValue: 'allowlist_identifiers',
3001 editable: false,
3002 required: true,
3003 type: 'text',
3004 },
3005 ],
3006 },
3007 {
3008 label: 'Block List',
3009 description: 'List of all identifiers which are not allowed to access an instance',
3010 availableColumns: [
3011 { name: 'id', type: 'text' },
3012 { name: 'identifier', type: 'text' },
3013 { name: 'identifier_type', type: 'text' },
3014 { name: 'instance_id', type: 'text' },
3015 { name: 'created_at', type: 'timestamp' },
3016 { name: 'updated_at', type: 'timestamp' },
3017 { name: 'attrs', type: 'jsonb' },
3018 ],
3019 options: [
3020 {
3021 name: 'object',
3022 defaultValue: 'blocklist_identifiers',
3023 editable: false,
3024 required: true,
3025 type: 'text',
3026 },
3027 ],
3028 },
3029 {
3030 label: 'Domains',
3031 description: 'List of all domains for an instance',
3032 availableColumns: [
3033 { name: 'id', type: 'text' },
3034 { name: 'name', type: 'text' },
3035 { name: 'is_satellite', type: 'boolean' },
3036 { name: 'frontend_api_url', type: 'text' },
3037 { name: 'accounts_portal_url', type: 'text' },
3038 { name: 'attrs', type: 'jsonb' },
3039 ],
3040 options: [
3041 {
3042 name: 'object',
3043 defaultValue: 'domains',
3044 editable: false,
3045 required: true,
3046 type: 'text',
3047 },
3048 ],
3049 },
3050 {
3051 label: 'Invitations',
3052 description: 'List of all non-revoked invitations for your application',
3053 availableColumns: [
3054 { name: 'id', type: 'text' },
3055 { name: 'email_address', type: 'text' },
3056 { name: 'url', type: 'text' },
3057 { name: 'revoked', type: 'boolean' },
3058 { name: 'status', type: 'text' },
3059 { name: 'expires_at', type: 'timestamp' },
3060 { name: 'created_at', type: 'timestamp' },
3061 { name: 'updated_at', type: 'timestamp' },
3062 { name: 'attrs', type: 'jsonb' },
3063 ],
3064 options: [
3065 {
3066 name: 'object',
3067 defaultValue: 'invitations',
3068 editable: false,
3069 required: true,
3070 type: 'text',
3071 },
3072 ],
3073 },
3074 {
3075 label: 'JWT Templates',
3076 description: 'List of all JWT templates',
3077 availableColumns: [
3078 { name: 'id', type: 'text' },
3079 { name: 'name', type: 'text' },
3080 { name: 'lifetime', type: 'bigint' },
3081 { name: 'allowed_clock_skew', type: 'bigint' },
3082 { name: 'custom_signing_key', type: 'boolean' },
3083 { name: 'signing_algorithm', type: 'text' },
3084 { name: 'created_at', type: 'timestamp' },
3085 { name: 'updated_at', type: 'timestamp' },
3086 { name: 'attrs', type: 'jsonb' },
3087 ],
3088 options: [
3089 {
3090 name: 'object',
3091 defaultValue: 'jwt_templates',
3092 editable: false,
3093 required: true,
3094 type: 'text',
3095 },
3096 ],
3097 },
3098 {
3099 label: 'OAuth Applications',
3100 description: 'List of OAuth applications for an instance',
3101 availableColumns: [
3102 { name: 'id', type: 'text' },
3103 { name: 'name', type: 'text' },
3104 { name: 'instance_id', type: 'text' },
3105 { name: 'client_id', type: 'text' },
3106 { name: 'public', type: 'boolean' },
3107 { name: 'scopes', type: 'text' },
3108 { name: 'created_at', type: 'timestamp' },
3109 { name: 'updated_at', type: 'timestamp' },
3110 { name: 'attrs', type: 'jsonb' },
3111 ],
3112 options: [
3113 {
3114 name: 'object',
3115 defaultValue: 'oauth_applications',
3116 editable: false,
3117 required: true,
3118 type: 'text',
3119 },
3120 ],
3121 },
3122 {
3123 label: 'Organizations',
3124 description: 'List of organizations for an instance',
3125 availableColumns: [
3126 { name: 'id', type: 'text' },
3127 { name: 'name', type: 'text' },
3128 { name: 'slug', type: 'text' },
3129 { name: 'created_at', type: 'timestamp' },
3130 { name: 'updated_at', type: 'timestamp' },
3131 { name: 'attrs', type: 'jsonb' },
3132 ],
3133 options: [
3134 {
3135 name: 'object',
3136 defaultValue: 'organizations',
3137 editable: false,
3138 required: true,
3139 type: 'text',
3140 },
3141 ],
3142 },
3143 {
3144 label: 'Organization Invitations',
3145 description: 'List of organization invitations for an instance',
3146 availableColumns: [
3147 { name: 'id', type: 'text' },
3148 { name: 'email_address', type: 'text' },
3149 { name: 'role', type: 'text' },
3150 { name: 'role_name', type: 'text' },
3151 { name: 'organization_id', type: 'text' },
3152 { name: 'status', type: 'text' },
3153 { name: 'created_at', type: 'timestamp' },
3154 { name: 'updated_at', type: 'timestamp' },
3155 { name: 'attrs', type: 'jsonb' },
3156 ],
3157 options: [
3158 {
3159 name: 'object',
3160 defaultValue: 'organization_invitations',
3161 editable: false,
3162 required: true,
3163 type: 'text',
3164 },
3165 ],
3166 },
3167 {
3168 label: 'Organization Memberships',
3169 description: 'List of organization user memberships for an instance',
3170 availableColumns: [
3171 { name: 'id', type: 'text' },
3172 { name: 'role', type: 'text' },
3173 { name: 'role_name', type: 'text' },
3174 { name: 'created_at', type: 'timestamp' },
3175 { name: 'updated_at', type: 'timestamp' },
3176 { name: 'attrs', type: 'jsonb' },
3177 ],
3178 options: [
3179 {
3180 name: 'object',
3181 defaultValue: 'organization_memberships',
3182 editable: false,
3183 required: true,
3184 type: 'text',
3185 },
3186 ],
3187 },
3188 {
3189 label: 'Redirect URLs',
3190 description: 'List of all whitelisted redirect urls for the instance',
3191 availableColumns: [
3192 { name: 'id', type: 'text' },
3193 { name: 'url', type: 'text' },
3194 { name: 'created_at', type: 'timestamp' },
3195 { name: 'updated_at', type: 'timestamp' },
3196 { name: 'attrs', type: 'jsonb' },
3197 ],
3198 options: [
3199 {
3200 name: 'object',
3201 defaultValue: 'redirect_urls',
3202 editable: false,
3203 required: true,
3204 type: 'text',
3205 },
3206 ],
3207 },
3208 {
3209 label: 'SAML Connections',
3210 description: 'List of SAML Connections for an instance',
3211 availableColumns: [
3212 { name: 'id', type: 'text' },
3213 { name: 'name', type: 'text' },
3214 { name: 'domain', type: 'text' },
3215 { name: 'active', type: 'boolean' },
3216 { name: 'provider', type: 'text' },
3217 { name: 'user_count', type: 'bigint' },
3218 { name: 'created_at', type: 'timestamp' },
3219 { name: 'updated_at', type: 'timestamp' },
3220 { name: 'attrs', type: 'jsonb' },
3221 ],
3222 options: [
3223 {
3224 name: 'object',
3225 defaultValue: 'saml_connections',
3226 editable: false,
3227 required: true,
3228 type: 'text',
3229 },
3230 ],
3231 },
3232 {
3233 label: 'Users',
3234 description: 'List of all users',
3235 availableColumns: [
3236 { name: 'id', type: 'text' },
3237 { name: 'external_id', type: 'text' },
3238 { name: 'username', type: 'text' },
3239 { name: 'first_name', type: 'text' },
3240 { name: 'last_name', type: 'text' },
3241 { name: 'created_at', type: 'timestamp' },
3242 { name: 'updated_at', type: 'timestamp' },
3243 { name: 'attrs', type: 'jsonb' },
3244 ],
3245 options: [
3246 {
3247 name: 'object',
3248 defaultValue: 'users',
3249 editable: false,
3250 required: true,
3251 type: 'text',
3252 },
3253 ],
3254 },
3255 ],
3256 },
3257 {
3258 name: 'notion_wrapper',
3259 description: 'Notion provides a versatile, ready-to-use solution for managing your data.',
3260 handlerName: WRAPPER_HANDLERS.NOTION,
3261 validatorName: 'wasm_fdw_validator',
3262 icon: `${BASE_PATH}/img/icons/notion-icon.svg`,
3263 extensionName: 'NotionFdw',
3264 label: 'Notion',
3265 docsUrl: 'https://fdw.dev/catalog/notion/',
3266 minimumExtensionVersion: '0.4.0',
3267 server: {
3268 options: [
3269 {
3270 name: 'fdw_package_url',
3271 label: 'FDW Package URL',
3272 required: true,
3273 encrypted: false,
3274 secureEntry: false,
3275 defaultValue:
3276 'https://github.com/briven/wrappers/releases/download/wasm_notion_fdw_v0.1.1/notion_fdw.wasm',
3277 hidden: true,
3278 },
3279 {
3280 name: 'fdw_package_name',
3281 label: 'FDW Package Name',
3282 required: true,
3283 encrypted: false,
3284 secureEntry: false,
3285 defaultValue: 'briven:notion-fdw',
3286 hidden: true,
3287 },
3288 {
3289 name: 'fdw_package_version',
3290 label: 'FDW Package Version',
3291 required: true,
3292 encrypted: false,
3293 secureEntry: false,
3294 defaultValue: '0.1.1',
3295 hidden: true,
3296 },
3297 {
3298 name: 'fdw_package_checksum',
3299 label: 'FDW Package Checksum',
3300 required: true,
3301 encrypted: false,
3302 secureEntry: false,
3303 defaultValue: '6dea3014f462aafd0c051c37d163fe326e7650c26a7eb5d8017a30634b5a46de',
3304 hidden: true,
3305 },
3306 {
3307 name: 'api_url',
3308 label: 'API URL',
3309 required: false,
3310 encrypted: false,
3311 secureEntry: false,
3312 defaultValue: 'https://api.notion.com/v1',
3313 },
3314 {
3315 name: 'api_key_id',
3316 label: 'Notion API Key',
3317 required: true,
3318 encrypted: true,
3319 secureEntry: true,
3320 },
3321 ],
3322 },
3323 tables: [
3324 {
3325 label: 'Blocks',
3326 description: 'Notion Block content',
3327 availableColumns: [
3328 { name: 'id', type: 'text' },
3329 { name: 'page_id', type: 'text' },
3330 { name: 'type', type: 'text' },
3331 { name: 'created_time', type: 'timestamp' },
3332 { name: 'last_edited_time', type: 'timestamp' },
3333 { name: 'archived', type: 'boolean' },
3334 { name: 'attrs', type: 'jsonb' },
3335 ],
3336 options: [
3337 {
3338 name: 'object',
3339 defaultValue: 'block',
3340 editable: false,
3341 required: true,
3342 type: 'text',
3343 },
3344 ],
3345 },
3346 {
3347 label: 'Pages',
3348 description: 'Notion Pages',
3349 availableColumns: [
3350 { name: 'id', type: 'text' },
3351 { name: 'url', type: 'text' },
3352 { name: 'created_time', type: 'timestamp' },
3353 { name: 'last_edited_time', type: 'timestamp' },
3354 { name: 'archived', type: 'boolean' },
3355 { name: 'attrs', type: 'jsonb' },
3356 ],
3357 options: [
3358 {
3359 name: 'object',
3360 defaultValue: 'page',
3361 editable: false,
3362 required: true,
3363 type: 'text',
3364 },
3365 ],
3366 },
3367 {
3368 label: 'Databases',
3369 description: 'Notion Databases',
3370 availableColumns: [
3371 { name: 'id', type: 'text' },
3372 { name: 'url', type: 'text' },
3373 { name: 'created_time', type: 'timestamp' },
3374 { name: 'last_edited_time', type: 'timestamp' },
3375 { name: 'archived', type: 'boolean' },
3376 { name: 'attrs', type: 'jsonb' },
3377 ],
3378 options: [
3379 {
3380 name: 'object',
3381 defaultValue: 'database',
3382 editable: false,
3383 required: true,
3384 type: 'text',
3385 },
3386 ],
3387 },
3388 {
3389 label: 'Users',
3390 description: 'Notion Users',
3391 availableColumns: [
3392 { name: 'id', type: 'text' },
3393 { name: 'name', type: 'text' },
3394 { name: 'type', type: 'text' },
3395 { name: 'avatar_url', type: 'text' },
3396 { name: 'attrs', type: 'jsonb' },
3397 ],
3398 options: [
3399 {
3400 name: 'object',
3401 defaultValue: 'user',
3402 editable: false,
3403 required: true,
3404 type: 'text',
3405 },
3406 ],
3407 },
3408 ],
3409 },
3410 {
3411 name: 'slack_wrapper',
3412 description:
3413 'Query Slack workspaces, channels, messages, users, files, and more via the Slack API.',
3414 handlerName: WRAPPER_HANDLERS.SLACK,
3415 validatorName: 'wasm_fdw_validator',
3416 icon: `${BASE_PATH}/img/icons/slack-icon.svg`,
3417 extensionName: 'SlackFdw',
3418 label: 'Slack',
3419 docsUrl: 'https://fdw.dev/catalog/slack/',
3420 minimumExtensionVersion: '0.4.0',
3421 server: {
3422 options: [
3423 {
3424 name: 'fdw_package_url',
3425 label: 'FDW Package URL',
3426 required: true,
3427 encrypted: false,
3428 secureEntry: false,
3429 defaultValue:
3430 'https://github.com/briven/wrappers/releases/download/wasm_slack_fdw_v0.1.0/slack_fdw.wasm',
3431 hidden: true,
3432 },
3433 {
3434 name: 'fdw_package_name',
3435 label: 'FDW Package Name',
3436 required: true,
3437 encrypted: false,
3438 secureEntry: false,
3439 defaultValue: 'briven:slack-fdw',
3440 hidden: true,
3441 },
3442 {
3443 name: 'fdw_package_version',
3444 label: 'FDW Package Version',
3445 required: true,
3446 encrypted: false,
3447 secureEntry: false,
3448 defaultValue: '0.1.0',
3449 hidden: true,
3450 },
3451 {
3452 name: 'fdw_package_checksum',
3453 label: 'FDW Package Checksum',
3454 required: true,
3455 encrypted: false,
3456 secureEntry: false,
3457 defaultValue: '5b022b441c0007e31d792ecb1341bfffed1c29cb865eb0c7969989dff0e8fdc3',
3458 hidden: true,
3459 },
3460 {
3461 name: 'api_token_id',
3462 label: 'Slack Bot User OAuth Token',
3463 required: true,
3464 encrypted: true,
3465 secureEntry: true,
3466 urlHelper: 'https://api.slack.com/apps',
3467 },
3468 {
3469 name: 'workspace',
3470 label: 'Workspace',
3471 required: false,
3472 encrypted: false,
3473 secureEntry: false,
3474 },
3475 ],
3476 },
3477 tables: [
3478 {
3479 label: 'Channels',
3480 description: 'All channels in the workspace',
3481 availableColumns: [
3482 { name: 'id', type: 'text' },
3483 { name: 'name', type: 'text' },
3484 { name: 'is_private', type: 'boolean' },
3485 { name: 'created', type: 'timestamp' },
3486 { name: 'creator', type: 'text' },
3487 ],
3488 options: [
3489 {
3490 name: 'resource',
3491 defaultValue: 'channels',
3492 editable: false,
3493 required: true,
3494 type: 'text',
3495 },
3496 ],
3497 },
3498 {
3499 label: 'Messages',
3500 description: 'Messages from channels, DMs, and group messages',
3501 availableColumns: [
3502 { name: 'ts', type: 'text' },
3503 { name: 'user_id', type: 'text' },
3504 { name: 'channel_id', type: 'text' },
3505 { name: 'text', type: 'text' },
3506 { name: 'thread_ts', type: 'text' },
3507 { name: 'reply_count', type: 'integer' },
3508 ],
3509 options: [
3510 {
3511 name: 'resource',
3512 defaultValue: 'messages',
3513 editable: false,
3514 required: true,
3515 type: 'text',
3516 },
3517 ],
3518 },
3519 {
3520 label: 'Users',
3521 description: 'All users in the workspace',
3522 availableColumns: [
3523 { name: 'id', type: 'text' },
3524 { name: 'name', type: 'text' },
3525 { name: 'real_name', type: 'text' },
3526 { name: 'display_name', type: 'text' },
3527 { name: 'display_name_normalized', type: 'text' },
3528 { name: 'real_name_normalized', type: 'text' },
3529 { name: 'email', type: 'text' },
3530 { name: 'phone', type: 'text' },
3531 { name: 'skype', type: 'text' },
3532 { name: 'is_admin', type: 'boolean' },
3533 { name: 'is_owner', type: 'boolean' },
3534 { name: 'is_primary_owner', type: 'boolean' },
3535 { name: 'is_bot', type: 'boolean' },
3536 { name: 'is_app_user', type: 'boolean' },
3537 { name: 'is_restricted', type: 'boolean' },
3538 { name: 'is_ultra_restricted', type: 'boolean' },
3539 { name: 'deleted', type: 'boolean' },
3540 { name: 'status_text', type: 'text' },
3541 { name: 'status_emoji', type: 'text' },
3542 { name: 'status_expiration', type: 'bigint' },
3543 { name: 'title', type: 'text' },
3544 { name: 'team_id', type: 'text' },
3545 { name: 'team', type: 'text' },
3546 { name: 'tz', type: 'text' },
3547 { name: 'tz_label', type: 'text' },
3548 { name: 'tz_offset', type: 'integer' },
3549 { name: 'locale', type: 'text' },
3550 { name: 'image_24', type: 'text' },
3551 { name: 'image_48', type: 'text' },
3552 { name: 'image_72', type: 'text' },
3553 { name: 'image_192', type: 'text' },
3554 { name: 'image_512', type: 'text' },
3555 { name: 'color', type: 'text' },
3556 { name: 'updated', type: 'bigint' },
3557 ],
3558 options: [
3559 {
3560 name: 'resource',
3561 defaultValue: 'users',
3562 editable: false,
3563 required: true,
3564 type: 'text',
3565 },
3566 ],
3567 },
3568 {
3569 label: 'User Groups',
3570 description: 'User groups in the workspace',
3571 availableColumns: [
3572 { name: 'id', type: 'text' },
3573 { name: 'team_id', type: 'text' },
3574 { name: 'name', type: 'text' },
3575 { name: 'handle', type: 'text' },
3576 { name: 'description', type: 'text' },
3577 { name: 'is_external', type: 'boolean' },
3578 { name: 'date_create', type: 'bigint' },
3579 { name: 'date_update', type: 'bigint' },
3580 { name: 'date_delete', type: 'bigint' },
3581 { name: 'auto_type', type: 'text' },
3582 { name: 'created_by', type: 'text' },
3583 { name: 'updated_by', type: 'text' },
3584 { name: 'deleted_by', type: 'text' },
3585 { name: 'user_count', type: 'integer' },
3586 { name: 'channel_count', type: 'integer' },
3587 ],
3588 options: [
3589 {
3590 name: 'resource',
3591 defaultValue: 'usergroups',
3592 editable: false,
3593 required: true,
3594 type: 'text',
3595 },
3596 ],
3597 },
3598 {
3599 label: 'User Group Members',
3600 description: 'Membership relation between users and user groups',
3601 availableColumns: [
3602 { name: 'usergroup_id', type: 'text' },
3603 { name: 'usergroup_name', type: 'text' },
3604 { name: 'usergroup_handle', type: 'text' },
3605 { name: 'user_id', type: 'text' },
3606 ],
3607 options: [
3608 {
3609 name: 'resource',
3610 defaultValue: 'usergroup_members',
3611 editable: false,
3612 required: true,
3613 type: 'text',
3614 },
3615 ],
3616 },
3617 {
3618 label: 'Files',
3619 description: 'Files shared in the workspace',
3620 availableColumns: [
3621 { name: 'id', type: 'text' },
3622 { name: 'name', type: 'text' },
3623 { name: 'title', type: 'text' },
3624 { name: 'mimetype', type: 'text' },
3625 { name: 'size', type: 'bigint' },
3626 { name: 'url_private', type: 'text' },
3627 { name: 'user_id', type: 'text' },
3628 { name: 'created', type: 'timestamp' },
3629 ],
3630 options: [
3631 {
3632 name: 'resource',
3633 defaultValue: 'files',
3634 editable: false,
3635 required: true,
3636 type: 'text',
3637 },
3638 ],
3639 },
3640 {
3641 label: 'Team Info',
3642 description: 'Information about the Slack team/workspace',
3643 availableColumns: [
3644 { name: 'id', type: 'text' },
3645 { name: 'name', type: 'text' },
3646 { name: 'domain', type: 'text' },
3647 { name: 'email_domain', type: 'text' },
3648 ],
3649 options: [
3650 {
3651 name: 'resource',
3652 defaultValue: 'team-info',
3653 editable: false,
3654 required: true,
3655 type: 'text',
3656 },
3657 ],
3658 },
3659 ],
3660 },
3661 {
3662 name: 'cfd1_wrapper',
3663 description: 'Read and write data from Cloudflare D1 databases using the Wasm FDW.',
3664 handlerName: WRAPPER_HANDLERS.CLOUDFLARE_D1,
3665 validatorName: 'wasm_fdw_validator',
3666 icon: `${BASE_PATH}/img/icons/cloudflare-icon.svg`,
3667 extensionName: 'Cfd1Fdw',
3668 label: 'Cloudflare D1',
3669 docsUrl: 'https://fdw.dev/catalog/cfd1/',
3670 minimumExtensionVersion: '0.4.0',
3671 server: {
3672 options: [
3673 {
3674 name: 'fdw_package_url',
3675 label: 'FDW Package URL',
3676 required: true,
3677 encrypted: false,
3678 secureEntry: false,
3679 defaultValue:
3680 'https://github.com/briven/wrappers/releases/download/wasm_cfd1_fdw_v0.1.0/cfd1_fdw.wasm',
3681 hidden: true,
3682 },
3683 {
3684 name: 'fdw_package_name',
3685 label: 'FDW Package Name',
3686 required: true,
3687 encrypted: false,
3688 secureEntry: false,
3689 defaultValue: 'briven:cfd1-fdw',
3690 hidden: true,
3691 },
3692 {
3693 name: 'fdw_package_version',
3694 label: 'FDW Package Version',
3695 required: true,
3696 encrypted: false,
3697 secureEntry: false,
3698 defaultValue: '0.1.0',
3699 hidden: true,
3700 },
3701 {
3702 name: 'fdw_package_checksum',
3703 label: 'FDW Package Checksum',
3704 required: true,
3705 encrypted: false,
3706 secureEntry: false,
3707 defaultValue: '783232834bb29dbd3ee6b09618c16f8a847286e63d05c54397d56c3e703fad31',
3708 hidden: true,
3709 },
3710 {
3711 name: 'api_url',
3712 label: 'API URL',
3713 required: false,
3714 encrypted: false,
3715 secureEntry: false,
3716 defaultValue: 'https://api.cloudflare.com/client/v4/accounts/<account_id>/d1/database',
3717 },
3718 {
3719 name: 'account_id',
3720 label: 'Account ID',
3721 required: true,
3722 encrypted: false,
3723 secureEntry: false,
3724 },
3725 {
3726 name: 'database_id',
3727 label: 'Database ID',
3728 required: true,
3729 encrypted: false,
3730 secureEntry: false,
3731 },
3732 {
3733 name: 'api_token_id',
3734 label: 'Cloudflare D1 API Token',
3735 required: true,
3736 encrypted: true,
3737 secureEntry: true,
3738 urlHelper: 'https://dash.cloudflare.com/profile/api-tokens',
3739 },
3740 ],
3741 },
3742 tables: [
3743 {
3744 label: 'D1 Databases',
3745 description: 'D1 databases in your Cloudflare account',
3746 availableColumns: [
3747 { name: 'uuid', type: 'text' },
3748 { name: 'name', type: 'text' },
3749 { name: 'version', type: 'text' },
3750 { name: 'num_tables', type: 'bigint' },
3751 { name: 'file_size', type: 'bigint' },
3752 { name: 'created_at', type: 'text' },
3753 { name: '_attrs', type: 'jsonb' },
3754 ],
3755 options: [
3756 {
3757 name: 'table',
3758 defaultValue: '_meta_databases',
3759 editable: false,
3760 required: true,
3761 type: 'text',
3762 },
3763 ],
3764 },
3765 {
3766 label: 'D1 Table',
3767 description: 'A table in your D1 database (define columns to match your D1 schema)',
3768 availableColumns: [
3769 { name: 'id', type: 'bigint' },
3770 { name: 'name', type: 'text' },
3771 { name: 'amount', type: 'double precision' },
3772 { name: 'metadata', type: 'text' },
3773 { name: '_attrs', type: 'jsonb' },
3774 ],
3775 options: [
3776 {
3777 label: 'Table',
3778 name: 'table',
3779 placeholder: 'mytable',
3780 editable: true,
3781 required: true,
3782 type: 'text',
3783 },
3784 {
3785 label: 'Row ID Column',
3786 name: 'rowid_column',
3787 placeholder: 'id',
3788 defaultValue: 'id',
3789 editable: true,
3790 required: false,
3791 type: 'text',
3792 },
3793 ],
3794 },
3795 ],
3796 },
3797 {
3798 name: 'hubspot_wrapper',
3799 description: 'Query and sync HubSpot CRM data using the Wasm FDW.',
3800 handlerName: WRAPPER_HANDLERS.HUBSPOT,
3801 validatorName: 'wasm_fdw_validator',
3802 icon: `${BASE_PATH}/img/icons/hubspot-icon.svg`,
3803 extensionName: 'HubspotFdw',
3804 label: 'HubSpot',
3805 docsUrl: 'https://fdw.dev/catalog/hubspot/',
3806 minimumExtensionVersion: '0.4.0',
3807 server: {
3808 options: [
3809 {
3810 name: 'fdw_package_url',
3811 label: 'FDW Package URL',
3812 required: true,
3813 encrypted: false,
3814 secureEntry: false,
3815 defaultValue:
3816 'https://github.com/briven/wrappers/releases/download/wasm_hubspot_fdw_v0.1.0/hubspot_fdw.wasm',
3817 hidden: true,
3818 },
3819 {
3820 name: 'fdw_package_name',
3821 label: 'FDW Package Name',
3822 required: true,
3823 encrypted: false,
3824 secureEntry: false,
3825 defaultValue: 'briven:hubspot-fdw',
3826 hidden: true,
3827 },
3828 {
3829 name: 'fdw_package_version',
3830 label: 'FDW Package Version',
3831 required: true,
3832 encrypted: false,
3833 secureEntry: false,
3834 defaultValue: '0.1.0',
3835 hidden: true,
3836 },
3837 {
3838 name: 'fdw_package_checksum',
3839 label: 'FDW Package Checksum',
3840 required: true,
3841 encrypted: false,
3842 secureEntry: false,
3843 defaultValue: '2cbf39e9e28aa732a225db09b2186a2342c44697d4fa047652d358e292ba5521',
3844 hidden: true,
3845 },
3846 {
3847 name: 'api_url',
3848 label: 'API URL',
3849 required: false,
3850 encrypted: false,
3851 secureEntry: false,
3852 defaultValue: 'https://api.hubapi.com/crm/v3',
3853 },
3854 {
3855 name: 'api_key_id',
3856 label: 'HubSpot API Key',
3857 required: true,
3858 encrypted: true,
3859 secureEntry: true,
3860 urlHelper:
3861 'https://developers.hubspot.com/docs/guides/apps/authentication/intro-to-auth#private-app-access-tokens',
3862 },
3863 ],
3864 },
3865 tables: [
3866 {
3867 label: 'Companies',
3868 description: 'Companies and organizations in your HubSpot CRM',
3869 availableColumns: [
3870 { name: 'id', type: 'text' },
3871 { name: 'name', type: 'text' },
3872 { name: 'domain', type: 'text' },
3873 { name: 'created_at', type: 'timestamp' },
3874 { name: 'updated_at', type: 'timestamp' },
3875 { name: 'attrs', type: 'jsonb' },
3876 ],
3877 options: [
3878 {
3879 name: 'object',
3880 defaultValue: 'objects/companies',
3881 editable: false,
3882 required: true,
3883 type: 'text',
3884 },
3885 ],
3886 },
3887 {
3888 label: 'Contacts',
3889 description: 'Contacts in your HubSpot CRM',
3890 availableColumns: [
3891 { name: 'id', type: 'text' },
3892 { name: 'email', type: 'text' },
3893 { name: 'firstname', type: 'text' },
3894 { name: 'lastname', type: 'text' },
3895 { name: 'created_at', type: 'timestamp' },
3896 { name: 'updated_at', type: 'timestamp' },
3897 { name: 'attrs', type: 'jsonb' },
3898 ],
3899 options: [
3900 {
3901 name: 'object',
3902 defaultValue: 'objects/contacts',
3903 editable: false,
3904 required: true,
3905 type: 'text',
3906 },
3907 ],
3908 },
3909 {
3910 label: 'Deals',
3911 description: 'Deals and transactions in your HubSpot CRM',
3912 availableColumns: [
3913 { name: 'id', type: 'text' },
3914 { name: 'created_at', type: 'timestamp' },
3915 { name: 'updated_at', type: 'timestamp' },
3916 { name: 'attrs', type: 'jsonb' },
3917 ],
3918 options: [
3919 {
3920 name: 'object',
3921 defaultValue: 'objects/deals',
3922 editable: false,
3923 required: true,
3924 type: 'text',
3925 },
3926 ],
3927 },
3928 {
3929 label: 'Tickets',
3930 description: 'Customer service requests in your HubSpot CRM',
3931 availableColumns: [
3932 { name: 'id', type: 'text' },
3933 { name: 'subject', type: 'text' },
3934 { name: 'created_at', type: 'timestamp' },
3935 { name: 'updated_at', type: 'timestamp' },
3936 { name: 'attrs', type: 'jsonb' },
3937 ],
3938 options: [
3939 {
3940 name: 'object',
3941 defaultValue: 'objects/tickets',
3942 editable: false,
3943 required: true,
3944 type: 'text',
3945 },
3946 ],
3947 },
3948 {
3949 label: 'Products',
3950 description: 'Products offered by your company in HubSpot',
3951 availableColumns: [
3952 { name: 'id', type: 'text' },
3953 { name: 'name', type: 'text' },
3954 { name: 'created_at', type: 'timestamp' },
3955 { name: 'updated_at', type: 'timestamp' },
3956 { name: 'attrs', type: 'jsonb' },
3957 ],
3958 options: [
3959 {
3960 name: 'object',
3961 defaultValue: 'objects/products',
3962 editable: false,
3963 required: true,
3964 type: 'text',
3965 },
3966 ],
3967 },
3968 {
3969 label: 'Leads',
3970 description: 'Potential customers in your HubSpot CRM',
3971 availableColumns: [
3972 { name: 'id', type: 'text' },
3973 { name: 'created_at', type: 'timestamp' },
3974 { name: 'updated_at', type: 'timestamp' },
3975 { name: 'attrs', type: 'jsonb' },
3976 ],
3977 options: [
3978 {
3979 name: 'object',
3980 defaultValue: 'objects/leads',
3981 editable: false,
3982 required: true,
3983 type: 'text',
3984 },
3985 ],
3986 },
3987 {
3988 label: 'Partner Clients',
3989 description: 'Partner clients managed by your company in HubSpot',
3990 availableColumns: [
3991 { name: 'id', type: 'text' },
3992 { name: 'created_at', type: 'timestamp' },
3993 { name: 'updated_at', type: 'timestamp' },
3994 { name: 'attrs', type: 'jsonb' },
3995 ],
3996 options: [
3997 {
3998 name: 'object',
3999 defaultValue: 'objects/partner_clients',
4000 editable: false,
4001 required: true,
4002 type: 'text',
4003 },
4004 ],
4005 },
4006 {
4007 label: 'Feedback Submissions',
4008 description: 'Feedback submissions from NPS, CSAT, CES, and custom surveys',
4009 availableColumns: [
4010 { name: 'id', type: 'text' },
4011 { name: 'created_at', type: 'timestamp' },
4012 { name: 'updated_at', type: 'timestamp' },
4013 { name: 'attrs', type: 'jsonb' },
4014 ],
4015 options: [
4016 {
4017 name: 'object',
4018 defaultValue: 'objects/feedback_submissions',
4019 editable: false,
4020 required: true,
4021 type: 'text',
4022 },
4023 ],
4024 },
4025 {
4026 label: 'Goals',
4027 description: 'User-specific quotas for sales and services teams',
4028 availableColumns: [
4029 { name: 'id', type: 'text' },
4030 { name: 'created_at', type: 'timestamp' },
4031 { name: 'updated_at', type: 'timestamp' },
4032 { name: 'attrs', type: 'jsonb' },
4033 ],
4034 options: [
4035 {
4036 name: 'object',
4037 defaultValue: 'objects/goal_targets',
4038 editable: false,
4039 required: true,
4040 type: 'text',
4041 },
4042 ],
4043 },
4044 {
4045 label: 'Partner Clients',
4046 description: 'Customers that Solutions Partners have a sold or managed relationship with',
4047 availableColumns: [
4048 { name: 'id', type: 'text' },
4049 { name: 'created_at', type: 'timestamp' },
4050 { name: 'updated_at', type: 'timestamp' },
4051 { name: 'attrs', type: 'jsonb' },
4052 ],
4053 options: [
4054 {
4055 name: 'object',
4056 defaultValue: 'objects/partner_clients',
4057 editable: false,
4058 required: true,
4059 type: 'text',
4060 },
4061 ],
4062 },
4063 {
4064 label: 'Custom Object',
4065 description: 'Custom objects managed by your company in HubSpot',
4066 availableColumns: [
4067 { name: 'id', type: 'text' },
4068 { name: 'created_at', type: 'timestamp' },
4069 { name: 'updated_at', type: 'timestamp' },
4070 { name: 'attrs', type: 'jsonb' },
4071 ],
4072 options: [
4073 {
4074 label: 'Object',
4075 name: 'object',
4076 placeholder: 'objects/<objectType> e.g. `objects/2-3508482`',
4077 defaultValue: 'objects/<objectType>',
4078 editable: true,
4079 required: true,
4080 type: 'text',
4081 },
4082 ],
4083 },
4084 ],
4085 },
4086 {
4087 name: 'orb_wrapper',
4088 handlerName: WRAPPER_HANDLERS.ORB,
4089 validatorName: 'wasm_fdw_validator',
4090 icon: `${BASE_PATH}/img/icons/orb-icon.svg`,
4091 description: 'Usage-based billing and metering platform',
4092 extensionName: 'OrbFdw',
4093 minimumExtensionVersion: '0.4.0',
4094 label: 'Orb',
4095 docsUrl: 'https://fdw.dev/catalog/orb/',
4096 server: {
4097 options: [
4098 {
4099 name: 'fdw_package_url',
4100 label: 'FDW Package URL',
4101 required: true,
4102 encrypted: false,
4103 secureEntry: false,
4104 defaultValue:
4105 'https://github.com/briven/wrappers/releases/download/wasm_orb_fdw_v0.1.0/orb_fdw.wasm',
4106 hidden: true,
4107 },
4108 {
4109 name: 'fdw_package_name',
4110 label: 'FDW Package Name',
4111 required: true,
4112 encrypted: false,
4113 secureEntry: false,
4114 defaultValue: 'briven:orb-fdw',
4115 hidden: true,
4116 },
4117 {
4118 name: 'fdw_package_version',
4119 label: 'FDW Package Version',
4120 required: true,
4121 encrypted: false,
4122 secureEntry: false,
4123 defaultValue: '0.1.0',
4124 hidden: true,
4125 },
4126 {
4127 name: 'fdw_package_checksum',
4128 label: 'FDW Package Checksum',
4129 required: true,
4130 encrypted: false,
4131 secureEntry: false,
4132 defaultValue: '89153a0a570257c231b78561cc909766731c828324585a5b6e2aa553902cb73a',
4133 hidden: true,
4134 },
4135 {
4136 name: 'api_url',
4137 label: 'Orb API URL',
4138 required: false,
4139 encrypted: false,
4140 secureEntry: false,
4141 defaultValue: 'https://api.withorb.com/v1',
4142 },
4143 {
4144 name: 'api_key_id',
4145 label: 'Orb API Key ID',
4146 required: true,
4147 encrypted: true,
4148 secureEntry: true,
4149 },
4150 ],
4151 },
4152 tables: [
4153 {
4154 label: 'Alerts',
4155 description: 'Alerts in Orb',
4156 availableColumns: [
4157 { name: 'id', type: 'text' },
4158 { name: 'type', type: 'text' },
4159 { name: 'enabled', type: 'boolean' },
4160 { name: 'customer_id', type: 'text' },
4161 { name: 'external_customer_id', type: 'text' },
4162 { name: 'subscription_id', type: 'text' },
4163 { name: 'created_at', type: 'timestamp' },
4164 { name: 'attrs', type: 'jsonb' },
4165 ],
4166 options: [
4167 {
4168 name: 'object',
4169 label: 'Object',
4170 defaultValue: 'alerts',
4171 editable: false,
4172 required: true,
4173 type: 'text',
4174 },
4175 {
4176 name: 'rowid_column',
4177 label: 'Row ID Column',
4178 placeholder: 'id',
4179 editable: true,
4180 required: false,
4181 type: 'text',
4182 },
4183 ],
4184 },
4185 {
4186 label: 'Coupons',
4187 description: 'Coupons in Orb',
4188 availableColumns: [
4189 { name: 'id', type: 'text' },
4190 { name: 'redemption_code', type: 'text' },
4191 { name: 'times_redeemed', type: 'bigint' },
4192 { name: 'duration_in_months', type: 'bigint' },
4193 { name: 'archived_at', type: 'timestamp' },
4194 { name: 'attrs', type: 'jsonb' },
4195 ],
4196 options: [
4197 {
4198 name: 'object',
4199 label: 'Object',
4200 defaultValue: 'coupons',
4201 editable: false,
4202 required: true,
4203 type: 'text',
4204 },
4205 {
4206 name: 'rowid_column',
4207 label: 'Row ID Column',
4208 placeholder: 'id',
4209 editable: true,
4210 required: false,
4211 type: 'text',
4212 },
4213 ],
4214 },
4215 {
4216 label: 'Credit Notes',
4217 description: 'Credit notes in Orb',
4218 availableColumns: [
4219 { name: 'id', type: 'text' },
4220 { name: 'type', type: 'text' },
4221 { name: 'total', type: 'numeric(18,2)' },
4222 { name: 'created_at', type: 'timestamp' },
4223 { name: 'attrs', type: 'jsonb' },
4224 ],
4225 options: [
4226 {
4227 name: 'object',
4228 label: 'Object',
4229 defaultValue: 'credit_notes',
4230 editable: false,
4231 required: true,
4232 type: 'text',
4233 },
4234 {
4235 name: 'rowid_column',
4236 label: 'Row ID Column',
4237 placeholder: 'id',
4238 editable: true,
4239 required: false,
4240 type: 'text',
4241 },
4242 ],
4243 },
4244 {
4245 label: 'Customers',
4246 description: 'Customers in Orb',
4247 availableColumns: [
4248 { name: 'id', type: 'text' },
4249 { name: 'name', type: 'text' },
4250 { name: 'email', type: 'text' },
4251 { name: 'created_at', type: 'timestamp' },
4252 { name: 'auto_collection', type: 'boolean' },
4253 { name: 'attrs', type: 'jsonb' },
4254 ],
4255 options: [
4256 {
4257 name: 'object',
4258 label: 'Object',
4259 defaultValue: 'customers',
4260 editable: false,
4261 required: true,
4262 type: 'text',
4263 },
4264 {
4265 name: 'rowid_column',
4266 label: 'Row ID Column',
4267 placeholder: 'id',
4268 editable: true,
4269 required: false,
4270 type: 'text',
4271 },
4272 ],
4273 },
4274 {
4275 label: 'Credits',
4276 description: 'Credits in Orb',
4277 availableColumns: [
4278 { name: 'id', type: 'text' },
4279 { name: 'customer_id', type: 'text' },
4280 { name: 'external_customer_id', type: 'text' },
4281 { name: 'balance', type: 'numeric(18,2)' },
4282 { name: 'status', type: 'text' },
4283 { name: 'effective_date', type: 'timestamp' },
4284 { name: 'expiry_date', type: 'timestamp' },
4285 { name: 'attrs', type: 'jsonb' },
4286 ],
4287 options: [
4288 {
4289 name: 'object',
4290 label: 'Object',
4291 defaultValue: 'credits',
4292 editable: false,
4293 required: true,
4294 type: 'text',
4295 },
4296 {
4297 name: 'rowid_column',
4298 label: 'Row ID Column',
4299 placeholder: 'id',
4300 editable: true,
4301 required: false,
4302 type: 'text',
4303 },
4304 ],
4305 },
4306 {
4307 label: 'Credits Ledger',
4308 description: 'Credits ledger in Orb',
4309 availableColumns: [
4310 { name: 'id', type: 'text' },
4311 { name: 'customer_id', type: 'text' },
4312 { name: 'external_customer_id', type: 'text' },
4313 { name: 'amount', type: 'numeric(18,2)' },
4314 { name: 'created_at', type: 'timestamp' },
4315 { name: 'attrs', type: 'jsonb' },
4316 ],
4317 options: [
4318 {
4319 name: 'object',
4320 label: 'Object',
4321 defaultValue: 'credits_ledger',
4322 editable: false,
4323 required: true,
4324 type: 'text',
4325 },
4326 {
4327 name: 'rowid_column',
4328 label: 'Row ID Column',
4329 placeholder: 'id',
4330 editable: true,
4331 required: false,
4332 type: 'text',
4333 },
4334 ],
4335 },
4336 {
4337 label: 'Dimensional Price Groups',
4338 description: 'Dimensional price groups in Orb',
4339 availableColumns: [
4340 { name: 'id', type: 'text' },
4341 { name: 'name', type: 'text' },
4342 { name: 'attrs', type: 'jsonb' },
4343 ],
4344 options: [
4345 {
4346 name: 'object',
4347 label: 'Object',
4348 defaultValue: 'dimensional_price_groups',
4349 editable: false,
4350 required: true,
4351 type: 'text',
4352 },
4353 {
4354 name: 'rowid_column',
4355 label: 'Row ID Column',
4356 placeholder: 'id',
4357 editable: true,
4358 required: false,
4359 type: 'text',
4360 },
4361 ],
4362 },
4363 {
4364 label: 'Events Backfills',
4365 description: 'Events backfills in Orb',
4366 availableColumns: [
4367 { name: 'id', type: 'text' },
4368 { name: 'status', type: 'text' },
4369 { name: 'events_ingested', type: 'bigint' },
4370 { name: 'created_at', type: 'timestamp' },
4371 { name: 'attrs', type: 'jsonb' },
4372 ],
4373 options: [
4374 {
4375 name: 'object',
4376 label: 'Object',
4377 defaultValue: 'events_backfills',
4378 editable: false,
4379 required: true,
4380 type: 'text',
4381 },
4382 {
4383 name: 'rowid_column',
4384 label: 'Row ID Column',
4385 placeholder: 'id',
4386 editable: true,
4387 required: false,
4388 type: 'text',
4389 },
4390 ],
4391 },
4392 {
4393 label: 'Events Volume',
4394 description: 'Events volume in Orb',
4395 availableColumns: [
4396 { name: 'count', type: 'bigint' },
4397 { name: 'timeframe_start', type: 'timestamp' },
4398 { name: 'timeframe_end', type: 'timestamp' },
4399 { name: 'attrs', type: 'jsonb' },
4400 ],
4401 options: [
4402 {
4403 name: 'object',
4404 label: 'Object',
4405 defaultValue: 'events_volume',
4406 editable: false,
4407 required: true,
4408 type: 'text',
4409 },
4410 {
4411 name: 'rowid_column',
4412 label: 'Row ID Column',
4413 placeholder: 'id',
4414 editable: true,
4415 required: false,
4416 type: 'text',
4417 },
4418 ],
4419 },
4420 {
4421 label: 'Invoices',
4422 description: 'Invoices in Orb',
4423 availableColumns: [
4424 { name: 'id', type: 'text' },
4425 { name: 'invoice_number', type: 'text' },
4426 { name: 'customer_id', type: 'text' },
4427 { name: 'external_customer_id', type: 'text' },
4428 { name: 'subscription_id', type: 'text' },
4429 { name: 'status', type: 'text' },
4430 { name: 'amount_due', type: 'numeric(18,2)' },
4431 { name: 'currency', type: 'text' },
4432 { name: 'due_date', type: 'timestamp' },
4433 { name: 'issued_at', type: 'timestamp' },
4434 { name: 'created_at', type: 'timestamp' },
4435 { name: 'attrs', type: 'jsonb' },
4436 ],
4437 options: [
4438 {
4439 name: 'object',
4440 label: 'Object',
4441 defaultValue: 'invoices',
4442 editable: false,
4443 required: true,
4444 type: 'text',
4445 },
4446 {
4447 name: 'rowid_column',
4448 label: 'Row ID Column',
4449 placeholder: 'id',
4450 editable: true,
4451 required: false,
4452 type: 'text',
4453 },
4454 ],
4455 },
4456 {
4457 label: 'Items',
4458 description: 'Items in Orb',
4459 availableColumns: [
4460 { name: 'id', type: 'text' },
4461 { name: 'name', type: 'text' },
4462 { name: 'created_at', type: 'timestamp' },
4463 { name: 'attrs', type: 'jsonb' },
4464 ],
4465 options: [
4466 {
4467 name: 'object',
4468 label: 'Object',
4469 defaultValue: 'items',
4470 editable: false,
4471 required: true,
4472 type: 'text',
4473 },
4474 {
4475 name: 'rowid_column',
4476 label: 'Row ID Column',
4477 placeholder: 'id',
4478 editable: true,
4479 required: false,
4480 type: 'text',
4481 },
4482 ],
4483 },
4484 {
4485 label: 'Metrics',
4486 description: 'Metrics in Orb',
4487 availableColumns: [
4488 { name: 'id', type: 'text' },
4489 { name: 'name', type: 'text' },
4490 { name: 'description', type: 'text' },
4491 { name: 'status', type: 'text' },
4492 { name: 'created_at', type: 'timestamp' },
4493 { name: 'attrs', type: 'jsonb' },
4494 ],
4495 options: [
4496 {
4497 name: 'object',
4498 label: 'Object',
4499 defaultValue: 'metrics',
4500 editable: false,
4501 required: true,
4502 type: 'text',
4503 },
4504 {
4505 name: 'rowid_column',
4506 label: 'Row ID Column',
4507 placeholder: 'id',
4508 editable: true,
4509 required: false,
4510 type: 'text',
4511 },
4512 ],
4513 },
4514 {
4515 label: 'Plans',
4516 description: 'Plans in Orb',
4517 availableColumns: [
4518 { name: 'id', type: 'text' },
4519 { name: 'name', type: 'text' },
4520 { name: 'description', type: 'text' },
4521 { name: 'status', type: 'text' },
4522 { name: 'maximum_amount', type: 'numeric(18,2)' },
4523 { name: 'minimum_amount', type: 'numeric(18,2)' },
4524 { name: 'created_at', type: 'timestamp' },
4525 { name: 'attrs', type: 'jsonb' },
4526 ],
4527 options: [
4528 {
4529 name: 'object',
4530 label: 'Object',
4531 defaultValue: 'plans',
4532 editable: false,
4533 required: true,
4534 type: 'text',
4535 },
4536 {
4537 name: 'rowid_column',
4538 label: 'Row ID Column',
4539 placeholder: 'id',
4540 editable: true,
4541 required: false,
4542 type: 'text',
4543 },
4544 ],
4545 },
4546 {
4547 label: 'Prices',
4548 description: 'Prices in Orb',
4549 availableColumns: [
4550 { name: 'id', type: 'text' },
4551 { name: 'name', type: 'text' },
4552 { name: 'external_price_id', type: 'text' },
4553 { name: 'price_type', type: 'text' },
4554 { name: 'maximum_amount', type: 'numeric(18,2)' },
4555 { name: 'minimum_amount', type: 'numeric(18,2)' },
4556 { name: 'created_at', type: 'timestamp' },
4557 { name: 'attrs', type: 'jsonb' },
4558 ],
4559 options: [
4560 {
4561 name: 'object',
4562 label: 'Object',
4563 defaultValue: 'prices',
4564 editable: false,
4565 required: true,
4566 type: 'text',
4567 },
4568 {
4569 name: 'rowid_column',
4570 label: 'Row ID Column',
4571 placeholder: 'id',
4572 editable: true,
4573 required: false,
4574 type: 'text',
4575 },
4576 ],
4577 },
4578 {
4579 label: 'Subscriptions',
4580 description: 'Subscriptions in Orb',
4581 availableColumns: [
4582 { name: 'id', type: 'text' },
4583 { name: 'customer_id', type: 'text' },
4584 { name: 'external_customer_id', type: 'text' },
4585 { name: 'billing_cycle_day', type: 'bigint' },
4586 { name: 'status', type: 'text' },
4587 { name: 'start_date', type: 'timestamp' },
4588 { name: 'end_date', type: 'timestamp' },
4589 { name: 'created_at', type: 'timestamp' },
4590 { name: 'attrs', type: 'jsonb' },
4591 ],
4592 options: [
4593 {
4594 name: 'object',
4595 label: 'Object',
4596 defaultValue: 'subscriptions',
4597 editable: false,
4598 required: true,
4599 type: 'text',
4600 },
4601 {
4602 name: 'rowid_column',
4603 label: 'Row ID Column',
4604 placeholder: 'id',
4605 editable: true,
4606 required: false,
4607 type: 'text',
4608 },
4609 ],
4610 },
4611 ],
4612 },
4613]