@topolo/sdk 0.4.9 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -36,8 +36,8 @@ interface TopoloClientOptions {
36
36
  agent: AgentIdentity;
37
37
  /** Per-service URL overrides. Useful for staging/dev. */
38
38
  serviceUrls?: Record<string, string>;
39
- /** Per-service TopoloAuth service id overrides from the owning app/deployment. */
40
- serviceIds?: Record<string, string>;
39
+ /** Per-service TopoloAuth app id overrides from the owning app/deployment. */
40
+ appIds?: Record<string, string>;
41
41
  /**
42
42
  * When true, mutating helpers (POST/PUT/PATCH/DELETE) require callers to pass
43
43
  * `{ confirm: true }`. Defaults to true. Set false only for trusted surfaces.
@@ -105,7 +105,7 @@ interface RequestOptions {
105
105
  * from TopoloAuth `GET /api/services/catalog`.
106
106
  */
107
107
  interface TopoloServiceCatalogEntry {
108
- serviceId: string;
108
+ appId: string;
109
109
  slug: string | null;
110
110
  name: string | null;
111
111
  description: string | null;
@@ -133,7 +133,7 @@ interface TopoloActionCatalogEntry {
133
133
  toolName: string | null;
134
134
  title: string;
135
135
  description: string;
136
- serviceId: string;
136
+ appId: string;
137
137
  serviceSlug: string | null;
138
138
  serviceName: string | null;
139
139
  method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
@@ -145,6 +145,8 @@ interface TopoloActionCatalogEntry {
145
145
  readOnly: boolean;
146
146
  destructive: boolean;
147
147
  requiresConfirmation: boolean;
148
+ /** Agent access tier. null/absent when the catalog does not specify one (consumers derive a default). */
149
+ agentAccess?: 'auto' | 'confirm' | 'off' | null;
148
150
  status: string | null;
149
151
  sourceRevision: string | null;
150
152
  }
@@ -152,7 +154,7 @@ declare class TopoloClient {
152
154
  private readonly credential;
153
155
  private readonly agent;
154
156
  private readonly serviceUrls?;
155
- private readonly serviceIds?;
157
+ private readonly appIds?;
156
158
  private readonly requireConfirmForWrites;
157
159
  private readonly timeoutMs;
158
160
  private readonly fetchImpl;
@@ -160,17 +162,17 @@ declare class TopoloClient {
160
162
  private serviceCatalogCache;
161
163
  private actionCatalogCache;
162
164
  /**
163
- * Process-wide cache for slug → service-id lookups. Keyed by
165
+ * Process-wide cache for slug → app-id lookups. Keyed by
164
166
  * `${authBaseUrl}|${slug}` so multiple `TopoloClient` instances pointing at
165
167
  * the same Auth share, but staging vs prod don't poison each other.
166
- * Cleared via `TopoloClient.clearServiceIdCache()` if a test needs it.
168
+ * Cleared via `TopoloClient.clearAppIdCache()` if a test needs it.
167
169
  */
168
- private static readonly serviceIdCache;
170
+ private static readonly appIdCache;
169
171
  /**
170
- * Drop the slug→service-id cache. Test-only — production callers should
172
+ * Drop the slug→app-id cache. Test-only — production callers should
171
173
  * let the 5-minute TTL expire naturally.
172
174
  */
173
- static clearServiceIdCache(): void;
175
+ static clearAppIdCache(): void;
174
176
  constructor(options: TopoloClientOptions);
175
177
  private emit;
176
178
  /**
@@ -182,7 +184,7 @@ declare class TopoloClient {
182
184
  private resolveRequestService;
183
185
  private resolveLiveCallableService;
184
186
  /**
185
- * Resolve a service-slug → opaque service-id via caller config or TopoloAuth.
187
+ * Resolve a service-slug → opaque app-id via caller config or TopoloAuth.
186
188
  *
187
189
  * Cache: 5 minutes per process per `(slug, auth_base_url)`. Negative
188
190
  * results (404) are cached for 60s so a typo doesn't hot-loop the
@@ -193,7 +195,7 @@ declare class TopoloClient {
193
195
  * This keeps the resolver usable during early bootstrap before a caller
194
196
  * has acquired an access token.
195
197
  */
196
- getServiceIdBySlug(slug: string): Promise<string | null>;
198
+ getAppIdBySlug(slug: string): Promise<string | null>;
197
199
  /**
198
200
  * List the platform service catalog from the live registry
199
201
  * (`GET /api/services/catalog` on TopoloAuth). Credential-aware: the
@@ -206,8 +208,9 @@ declare class TopoloClient {
206
208
  */
207
209
  listServices(): Promise<TopoloServiceCatalogEntry[]>;
208
210
  /**
209
- * List callable actions from the live Auth catalog. The response is scoped to
210
- * the caller's organization and effective permissions; no bundled/static app
211
+ * List callable actions from the live registry-canonical catalog (definitions
212
+ * from the Catalog registry, scoping from Auth). The response is scoped to the
213
+ * caller's organization and effective permissions; no bundled/static app
211
214
  * action list is used as an authorization source.
212
215
  */
213
216
  listActions(options?: {
@@ -314,14 +317,14 @@ declare const APPLICATIONS: {
314
317
  readonly apiUrl: "https://admin.topolo.app";
315
318
  readonly domains: readonly ["admin.topolo.app"];
316
319
  readonly routes: readonly [];
317
- readonly serviceId: null;
320
+ readonly appId: null;
318
321
  }, {
319
322
  readonly name: "topolo-admin-api";
320
323
  readonly kind: "worker";
321
324
  readonly apiUrl: null;
322
325
  readonly domains: readonly [];
323
326
  readonly routes: readonly [];
324
- readonly serviceId: null;
327
+ readonly appId: null;
325
328
  }];
326
329
  };
327
330
  readonly agent: {
@@ -337,14 +340,14 @@ declare const APPLICATIONS: {
337
340
  readonly apiUrl: "https://agent.topolo.app";
338
341
  readonly domains: readonly ["agent.topolo.app"];
339
342
  readonly routes: readonly [];
340
- readonly serviceId: "agent";
343
+ readonly appId: "agent";
341
344
  }, {
342
345
  readonly name: "topolo-agent-api";
343
346
  readonly kind: "worker";
344
347
  readonly apiUrl: null;
345
348
  readonly domains: readonly [];
346
349
  readonly routes: readonly [];
347
- readonly serviceId: null;
350
+ readonly appId: null;
348
351
  }];
349
352
  };
350
353
  readonly auth: {
@@ -360,7 +363,7 @@ declare const APPLICATIONS: {
360
363
  readonly apiUrl: "https://auth.topolo.app";
361
364
  readonly domains: readonly ["auth.topolo.app"];
362
365
  readonly routes: readonly ["auth.topolo.app"];
363
- readonly serviceId: "auth";
366
+ readonly appId: "auth";
364
367
  }];
365
368
  };
366
369
  readonly backup: {
@@ -376,7 +379,7 @@ declare const APPLICATIONS: {
376
379
  readonly apiUrl: "https://backup.topolo.app";
377
380
  readonly domains: readonly ["backup.topolo.app"];
378
381
  readonly routes: readonly [];
379
- readonly serviceId: "backup";
382
+ readonly appId: "backup";
380
383
  }];
381
384
  };
382
385
  readonly books: {
@@ -392,14 +395,14 @@ declare const APPLICATIONS: {
392
395
  readonly apiUrl: "https://books.topolo.app";
393
396
  readonly domains: readonly ["books.topolo.app"];
394
397
  readonly routes: readonly [];
395
- readonly serviceId: "books";
398
+ readonly appId: "books";
396
399
  }, {
397
400
  readonly name: "topolo-books-api";
398
401
  readonly kind: "worker";
399
402
  readonly apiUrl: null;
400
403
  readonly domains: readonly [];
401
404
  readonly routes: readonly [];
402
- readonly serviceId: null;
405
+ readonly appId: null;
403
406
  }];
404
407
  };
405
408
  readonly bugfix: {
@@ -415,7 +418,7 @@ declare const APPLICATIONS: {
415
418
  readonly apiUrl: "https://bugfix.topolo.app";
416
419
  readonly domains: readonly ["bugfix.topolo.app"];
417
420
  readonly routes: readonly [];
418
- readonly serviceId: "bugfix";
421
+ readonly appId: "bugfix";
419
422
  }];
420
423
  };
421
424
  readonly bytes: {
@@ -431,14 +434,14 @@ declare const APPLICATIONS: {
431
434
  readonly apiUrl: "https://bytes.topolo.app";
432
435
  readonly domains: readonly ["bytes.topolo.app"];
433
436
  readonly routes: readonly [];
434
- readonly serviceId: "bytes";
437
+ readonly appId: "bytes";
435
438
  }, {
436
439
  readonly name: "topolo-bytes-api";
437
440
  readonly kind: "worker";
438
441
  readonly apiUrl: null;
439
442
  readonly domains: readonly [];
440
443
  readonly routes: readonly [];
441
- readonly serviceId: null;
444
+ readonly appId: null;
442
445
  }];
443
446
  };
444
447
  readonly calendar: {
@@ -454,14 +457,14 @@ declare const APPLICATIONS: {
454
457
  readonly apiUrl: "https://calendar.topolo.app";
455
458
  readonly domains: readonly ["calendar.topolo.app"];
456
459
  readonly routes: readonly [];
457
- readonly serviceId: "calendar";
460
+ readonly appId: "calendar";
458
461
  }, {
459
462
  readonly name: "topolo-calendar-api";
460
463
  readonly kind: "worker";
461
464
  readonly apiUrl: null;
462
465
  readonly domains: readonly [];
463
466
  readonly routes: readonly [];
464
- readonly serviceId: null;
467
+ readonly appId: null;
465
468
  }];
466
469
  };
467
470
  readonly capacity: {
@@ -477,7 +480,7 @@ declare const APPLICATIONS: {
477
480
  readonly apiUrl: "https://capacity.topolo.app";
478
481
  readonly domains: readonly ["capacity.topolo.app"];
479
482
  readonly routes: readonly [];
480
- readonly serviceId: "capacity";
483
+ readonly appId: "capacity";
481
484
  }];
482
485
  };
483
486
  readonly chat: {
@@ -493,14 +496,14 @@ declare const APPLICATIONS: {
493
496
  readonly apiUrl: "https://chat.topolo.app";
494
497
  readonly domains: readonly ["chat.topolo.app"];
495
498
  readonly routes: readonly [];
496
- readonly serviceId: "chat";
499
+ readonly appId: "chat";
497
500
  }, {
498
501
  readonly name: "topolo-chat-api";
499
502
  readonly kind: "worker";
500
503
  readonly apiUrl: null;
501
504
  readonly domains: readonly [];
502
505
  readonly routes: readonly [];
503
- readonly serviceId: null;
506
+ readonly appId: null;
504
507
  }];
505
508
  };
506
509
  readonly commerce: {
@@ -516,28 +519,28 @@ declare const APPLICATIONS: {
516
519
  readonly apiUrl: null;
517
520
  readonly domains: readonly [];
518
521
  readonly routes: readonly [];
519
- readonly serviceId: null;
522
+ readonly appId: null;
520
523
  }, {
521
524
  readonly name: "topolo-commerce-guest-web";
522
525
  readonly kind: "worker";
523
526
  readonly apiUrl: "https://guest.topolo.app";
524
527
  readonly domains: readonly ["guest.topolo.app"];
525
528
  readonly routes: readonly [];
526
- readonly serviceId: null;
529
+ readonly appId: null;
527
530
  }, {
528
531
  readonly name: "topolo-commerce-ops-web";
529
532
  readonly kind: "worker";
530
533
  readonly apiUrl: "https://commerce.topolo.app";
531
534
  readonly domains: readonly ["commerce.topolo.app"];
532
535
  readonly routes: readonly [];
533
- readonly serviceId: "commerce";
536
+ readonly appId: "commerce";
534
537
  }, {
535
538
  readonly name: "topolo-commerce-station-web";
536
539
  readonly kind: "worker";
537
540
  readonly apiUrl: "https://station-commerce.topolo.app";
538
541
  readonly domains: readonly ["station-commerce.topolo.app"];
539
542
  readonly routes: readonly [];
540
- readonly serviceId: null;
543
+ readonly appId: null;
541
544
  }];
542
545
  };
543
546
  readonly compose: {
@@ -553,14 +556,14 @@ declare const APPLICATIONS: {
553
556
  readonly apiUrl: "https://compose.topolo.app";
554
557
  readonly domains: readonly ["compose.topolo.app"];
555
558
  readonly routes: readonly [];
556
- readonly serviceId: "compose";
559
+ readonly appId: "compose";
557
560
  }, {
558
561
  readonly name: "topolo-compose-api";
559
562
  readonly kind: "worker";
560
563
  readonly apiUrl: null;
561
564
  readonly domains: readonly [];
562
565
  readonly routes: readonly [];
563
- readonly serviceId: null;
566
+ readonly appId: null;
564
567
  }];
565
568
  };
566
569
  readonly consent: {
@@ -576,14 +579,14 @@ declare const APPLICATIONS: {
576
579
  readonly apiUrl: "https://consent.topolo.app";
577
580
  readonly domains: readonly ["consent.topolo.app"];
578
581
  readonly routes: readonly [];
579
- readonly serviceId: "consent";
582
+ readonly appId: "consent";
580
583
  }, {
581
584
  readonly name: "topolo-consent-api";
582
585
  readonly kind: "worker";
583
586
  readonly apiUrl: null;
584
587
  readonly domains: readonly [];
585
588
  readonly routes: readonly [];
586
- readonly serviceId: null;
589
+ readonly appId: null;
587
590
  }];
588
591
  };
589
592
  readonly crm: {
@@ -599,14 +602,14 @@ declare const APPLICATIONS: {
599
602
  readonly apiUrl: null;
600
603
  readonly domains: readonly [];
601
604
  readonly routes: readonly [];
602
- readonly serviceId: null;
605
+ readonly appId: null;
603
606
  }, {
604
607
  readonly name: "topolo-crm-app";
605
608
  readonly kind: "worker";
606
609
  readonly apiUrl: "https://crm.topolo.app";
607
610
  readonly domains: readonly ["crm.topolo.app"];
608
611
  readonly routes: readonly [];
609
- readonly serviceId: "crm";
612
+ readonly appId: "crm";
610
613
  }];
611
614
  };
612
615
  readonly developers: {
@@ -622,21 +625,21 @@ declare const APPLICATIONS: {
622
625
  readonly apiUrl: null;
623
626
  readonly domains: readonly [];
624
627
  readonly routes: readonly [];
625
- readonly serviceId: null;
628
+ readonly appId: null;
626
629
  }, {
627
630
  readonly name: "topolo-developers";
628
631
  readonly kind: "worker";
629
632
  readonly apiUrl: "https://developers.topolo.app";
630
633
  readonly domains: readonly ["developers.topolo.app"];
631
634
  readonly routes: readonly [];
632
- readonly serviceId: "developers";
635
+ readonly appId: "developers";
633
636
  }, {
634
637
  readonly name: "topolo-developers-api";
635
638
  readonly kind: "worker";
636
639
  readonly apiUrl: null;
637
640
  readonly domains: readonly [];
638
641
  readonly routes: readonly [];
639
- readonly serviceId: null;
642
+ readonly appId: null;
640
643
  }];
641
644
  };
642
645
  readonly director: {
@@ -652,14 +655,14 @@ declare const APPLICATIONS: {
652
655
  readonly apiUrl: "https://director.topolo.app";
653
656
  readonly domains: readonly ["director.topolo.app"];
654
657
  readonly routes: readonly [];
655
- readonly serviceId: "director";
658
+ readonly appId: "director";
656
659
  }, {
657
660
  readonly name: "topolo-director-api";
658
661
  readonly kind: "worker";
659
662
  readonly apiUrl: null;
660
663
  readonly domains: readonly [];
661
664
  readonly routes: readonly [];
662
- readonly serviceId: null;
665
+ readonly appId: null;
663
666
  }];
664
667
  };
665
668
  readonly docs: {
@@ -675,14 +678,14 @@ declare const APPLICATIONS: {
675
678
  readonly apiUrl: "https://docs.topolo.app";
676
679
  readonly domains: readonly ["docs.topolo.app"];
677
680
  readonly routes: readonly [];
678
- readonly serviceId: null;
681
+ readonly appId: null;
679
682
  }, {
680
683
  readonly name: "topolo-docs-api";
681
684
  readonly kind: "worker";
682
685
  readonly apiUrl: null;
683
686
  readonly domains: readonly [];
684
687
  readonly routes: readonly [];
685
- readonly serviceId: null;
688
+ readonly appId: null;
686
689
  }];
687
690
  };
688
691
  readonly feed: {
@@ -698,21 +701,21 @@ declare const APPLICATIONS: {
698
701
  readonly apiUrl: "https://feed-analytics-api.topolo.app";
699
702
  readonly domains: readonly ["feed-analytics-api.topolo.app"];
700
703
  readonly routes: readonly [];
701
- readonly serviceId: null;
704
+ readonly appId: null;
702
705
  }, {
703
706
  readonly name: "topolo-feed-api";
704
707
  readonly kind: "worker";
705
708
  readonly apiUrl: "https://feed-api.topolo.app";
706
709
  readonly domains: readonly ["feed-api.topolo.app"];
707
710
  readonly routes: readonly [];
708
- readonly serviceId: null;
711
+ readonly appId: null;
709
712
  }, {
710
713
  readonly name: "topolo-feed-web";
711
714
  readonly kind: "worker";
712
715
  readonly apiUrl: "https://feed.topolo.app";
713
716
  readonly domains: readonly ["feed.topolo.app"];
714
717
  readonly routes: readonly [];
715
- readonly serviceId: "feed";
718
+ readonly appId: "feed";
716
719
  }];
717
720
  };
718
721
  readonly flow: {
@@ -728,14 +731,14 @@ declare const APPLICATIONS: {
728
731
  readonly apiUrl: "https://flow.topolo.app";
729
732
  readonly domains: readonly ["flow.topolo.app"];
730
733
  readonly routes: readonly [];
731
- readonly serviceId: "flow";
734
+ readonly appId: "flow";
732
735
  }, {
733
736
  readonly name: "topolo-flow-api";
734
737
  readonly kind: "worker";
735
738
  readonly apiUrl: null;
736
739
  readonly domains: readonly [];
737
740
  readonly routes: readonly [];
738
- readonly serviceId: null;
741
+ readonly appId: null;
739
742
  }];
740
743
  };
741
744
  readonly forecast: {
@@ -751,14 +754,14 @@ declare const APPLICATIONS: {
751
754
  readonly apiUrl: "https://forecast.topolo.app";
752
755
  readonly domains: readonly ["forecast.topolo.app"];
753
756
  readonly routes: readonly [];
754
- readonly serviceId: "forecast";
757
+ readonly appId: "forecast";
755
758
  }, {
756
759
  readonly name: "topolo-forecast-api";
757
760
  readonly kind: "worker";
758
761
  readonly apiUrl: null;
759
762
  readonly domains: readonly [];
760
763
  readonly routes: readonly [];
761
- readonly serviceId: null;
764
+ readonly appId: null;
762
765
  }];
763
766
  };
764
767
  readonly forms: {
@@ -774,14 +777,14 @@ declare const APPLICATIONS: {
774
777
  readonly apiUrl: "https://forms.topolo.app";
775
778
  readonly domains: readonly ["forms.topolo.app"];
776
779
  readonly routes: readonly [];
777
- readonly serviceId: "forms";
780
+ readonly appId: "forms";
778
781
  }, {
779
782
  readonly name: "topolo-forms-api";
780
783
  readonly kind: "worker";
781
784
  readonly apiUrl: null;
782
785
  readonly domains: readonly [];
783
786
  readonly routes: readonly [];
784
- readonly serviceId: null;
787
+ readonly appId: null;
785
788
  }];
786
789
  };
787
790
  readonly home: {
@@ -797,14 +800,14 @@ declare const APPLICATIONS: {
797
800
  readonly apiUrl: "https://home.topolo.app";
798
801
  readonly domains: readonly ["home.topolo.app"];
799
802
  readonly routes: readonly [];
800
- readonly serviceId: "home";
803
+ readonly appId: "home";
801
804
  }, {
802
805
  readonly name: "topolo-home-api";
803
806
  readonly kind: "worker";
804
807
  readonly apiUrl: null;
805
808
  readonly domains: readonly [];
806
809
  readonly routes: readonly [];
807
- readonly serviceId: null;
810
+ readonly appId: null;
808
811
  }];
809
812
  };
810
813
  readonly insights: {
@@ -820,14 +823,14 @@ declare const APPLICATIONS: {
820
823
  readonly apiUrl: "https://insights.topolo.app";
821
824
  readonly domains: readonly ["insights.topolo.app"];
822
825
  readonly routes: readonly [];
823
- readonly serviceId: "insights";
826
+ readonly appId: "insights";
824
827
  }, {
825
828
  readonly name: "topolo-insights-api";
826
829
  readonly kind: "worker";
827
830
  readonly apiUrl: null;
828
831
  readonly domains: readonly [];
829
832
  readonly routes: readonly [];
830
- readonly serviceId: null;
833
+ readonly appId: null;
831
834
  }];
832
835
  };
833
836
  readonly inventory: {
@@ -843,14 +846,14 @@ declare const APPLICATIONS: {
843
846
  readonly apiUrl: "https://inventory.topolo.app";
844
847
  readonly domains: readonly ["inventory.topolo.app"];
845
848
  readonly routes: readonly [];
846
- readonly serviceId: "inventory";
849
+ readonly appId: "inventory";
847
850
  }, {
848
851
  readonly name: "topolo-inventory-api";
849
852
  readonly kind: "worker";
850
853
  readonly apiUrl: null;
851
854
  readonly domains: readonly [];
852
855
  readonly routes: readonly [];
853
- readonly serviceId: null;
856
+ readonly appId: null;
854
857
  }];
855
858
  };
856
859
  readonly learn: {
@@ -866,14 +869,14 @@ declare const APPLICATIONS: {
866
869
  readonly apiUrl: "https://learn.topolo.app";
867
870
  readonly domains: readonly ["learn.topolo.app"];
868
871
  readonly routes: readonly [];
869
- readonly serviceId: "learn";
872
+ readonly appId: "learn";
870
873
  }, {
871
874
  readonly name: "topolo-learn-api";
872
875
  readonly kind: "worker";
873
876
  readonly apiUrl: null;
874
877
  readonly domains: readonly [];
875
878
  readonly routes: readonly [];
876
- readonly serviceId: null;
879
+ readonly appId: null;
877
880
  }];
878
881
  };
879
882
  readonly localize: {
@@ -889,7 +892,7 @@ declare const APPLICATIONS: {
889
892
  readonly apiUrl: "https://localize.topolo.app";
890
893
  readonly domains: readonly ["localize.topolo.app"];
891
894
  readonly routes: readonly ["localize.topolo.app"];
892
- readonly serviceId: "localize";
895
+ readonly appId: "localize";
893
896
  }];
894
897
  };
895
898
  readonly mail: {
@@ -905,14 +908,14 @@ declare const APPLICATIONS: {
905
908
  readonly apiUrl: "https://mail.topolo.app";
906
909
  readonly domains: readonly ["mail.topolo.app"];
907
910
  readonly routes: readonly [];
908
- readonly serviceId: "mail";
911
+ readonly appId: "mail";
909
912
  }, {
910
913
  readonly name: "topolo-mail-api";
911
914
  readonly kind: "worker";
912
915
  readonly apiUrl: null;
913
916
  readonly domains: readonly [];
914
917
  readonly routes: readonly [];
915
- readonly serviceId: null;
918
+ readonly appId: null;
916
919
  }];
917
920
  };
918
921
  readonly mdm: {
@@ -928,14 +931,14 @@ declare const APPLICATIONS: {
928
931
  readonly apiUrl: null;
929
932
  readonly domains: readonly [];
930
933
  readonly routes: readonly [];
931
- readonly serviceId: null;
934
+ readonly appId: null;
932
935
  }, {
933
936
  readonly name: "topolo-mdm-console";
934
937
  readonly kind: "worker";
935
938
  readonly apiUrl: "https://mdm.topolo.app";
936
939
  readonly domains: readonly ["mdm.topolo.app"];
937
940
  readonly routes: readonly [];
938
- readonly serviceId: "mdm";
941
+ readonly appId: "mdm";
939
942
  }];
940
943
  };
941
944
  readonly messages: {
@@ -951,21 +954,21 @@ declare const APPLICATIONS: {
951
954
  readonly apiUrl: "https://messages.topolo.app";
952
955
  readonly domains: readonly ["messages.topolo.app"];
953
956
  readonly routes: readonly [];
954
- readonly serviceId: "messages";
957
+ readonly appId: "messages";
955
958
  }, {
956
959
  readonly name: "topolo-messages-api";
957
960
  readonly kind: "worker";
958
961
  readonly apiUrl: null;
959
962
  readonly domains: readonly [];
960
963
  readonly routes: readonly [];
961
- readonly serviceId: null;
964
+ readonly appId: null;
962
965
  }, {
963
966
  readonly name: "topolo-messages-dispatch";
964
967
  readonly kind: "worker";
965
968
  readonly apiUrl: null;
966
969
  readonly domains: readonly [];
967
970
  readonly routes: readonly [];
968
- readonly serviceId: null;
971
+ readonly appId: null;
969
972
  }];
970
973
  };
971
974
  readonly nexus: {
@@ -981,14 +984,14 @@ declare const APPLICATIONS: {
981
984
  readonly apiUrl: null;
982
985
  readonly domains: readonly ["nexus.topolo.app"];
983
986
  readonly routes: readonly [];
984
- readonly serviceId: null;
987
+ readonly appId: null;
985
988
  }, {
986
989
  readonly name: "topolo-nexus-gateway";
987
990
  readonly kind: "worker";
988
991
  readonly apiUrl: "https://nexus.topolo.app";
989
992
  readonly domains: readonly ["nexus.topolo.app"];
990
993
  readonly routes: readonly [];
991
- readonly serviceId: "nexus";
994
+ readonly appId: "nexus";
992
995
  }];
993
996
  };
994
997
  readonly notify: {
@@ -1004,7 +1007,7 @@ declare const APPLICATIONS: {
1004
1007
  readonly apiUrl: "https://notify.topolo.app";
1005
1008
  readonly domains: readonly ["notify.topolo.app"];
1006
1009
  readonly routes: readonly ["notify.topolo.app"];
1007
- readonly serviceId: "notify";
1010
+ readonly appId: "notify";
1008
1011
  }];
1009
1012
  };
1010
1013
  readonly observability_watch: {
@@ -1020,7 +1023,7 @@ declare const APPLICATIONS: {
1020
1023
  readonly apiUrl: "https://observability-watch.topolo.app";
1021
1024
  readonly domains: readonly ["observability-watch.topolo.app"];
1022
1025
  readonly routes: readonly [];
1023
- readonly serviceId: "observability_watch";
1026
+ readonly appId: "observability_watch";
1024
1027
  }];
1025
1028
  };
1026
1029
  readonly one: {
@@ -1036,21 +1039,21 @@ declare const APPLICATIONS: {
1036
1039
  readonly apiUrl: "https://one.topolo.app";
1037
1040
  readonly domains: readonly ["one.topolo.app"];
1038
1041
  readonly routes: readonly ["one.topolo.app/*"];
1039
- readonly serviceId: null;
1042
+ readonly appId: null;
1040
1043
  }, {
1041
1044
  readonly name: "topolo-one-api";
1042
1045
  readonly kind: "worker";
1043
1046
  readonly apiUrl: "https://www.topolo.app";
1044
1047
  readonly domains: readonly ["www.topolo.app"];
1045
1048
  readonly routes: readonly ["www.topolo.app/*"];
1046
- readonly serviceId: "one";
1049
+ readonly appId: "one";
1047
1050
  }, {
1048
1051
  readonly name: "topolo-one-website";
1049
1052
  readonly kind: "worker";
1050
1053
  readonly apiUrl: "https://topolo.io";
1051
1054
  readonly domains: readonly ["topolo.io"];
1052
1055
  readonly routes: readonly ["topolo.io", "www.topolo.io"];
1053
- readonly serviceId: null;
1056
+ readonly appId: null;
1054
1057
  }];
1055
1058
  };
1056
1059
  readonly p2p: {
@@ -1066,14 +1069,14 @@ declare const APPLICATIONS: {
1066
1069
  readonly apiUrl: "https://p2p.topolo.app";
1067
1070
  readonly domains: readonly ["p2p.topolo.app"];
1068
1071
  readonly routes: readonly [];
1069
- readonly serviceId: "p2p";
1072
+ readonly appId: "p2p";
1070
1073
  }, {
1071
1074
  readonly name: "topolo-p2p-api";
1072
1075
  readonly kind: "worker";
1073
1076
  readonly apiUrl: null;
1074
1077
  readonly domains: readonly [];
1075
1078
  readonly routes: readonly [];
1076
- readonly serviceId: null;
1079
+ readonly appId: null;
1077
1080
  }];
1078
1081
  };
1079
1082
  readonly pay: {
@@ -1089,14 +1092,14 @@ declare const APPLICATIONS: {
1089
1092
  readonly apiUrl: "https://pay.topolo.app";
1090
1093
  readonly domains: readonly ["pay.topolo.app"];
1091
1094
  readonly routes: readonly [];
1092
- readonly serviceId: "pay";
1095
+ readonly appId: "pay";
1093
1096
  }, {
1094
1097
  readonly name: "topolo-pay-api";
1095
1098
  readonly kind: "worker";
1096
1099
  readonly apiUrl: null;
1097
1100
  readonly domains: readonly [];
1098
1101
  readonly routes: readonly [];
1099
- readonly serviceId: null;
1102
+ readonly appId: null;
1100
1103
  }];
1101
1104
  };
1102
1105
  readonly people: {
@@ -1112,14 +1115,14 @@ declare const APPLICATIONS: {
1112
1115
  readonly apiUrl: "https://people.topolo.app";
1113
1116
  readonly domains: readonly ["people.topolo.app"];
1114
1117
  readonly routes: readonly [];
1115
- readonly serviceId: "people";
1118
+ readonly appId: "people";
1116
1119
  }, {
1117
1120
  readonly name: "topolo-people-api";
1118
1121
  readonly kind: "worker";
1119
1122
  readonly apiUrl: null;
1120
1123
  readonly domains: readonly [];
1121
1124
  readonly routes: readonly [];
1122
- readonly serviceId: null;
1125
+ readonly appId: null;
1123
1126
  }];
1124
1127
  };
1125
1128
  readonly quro: {
@@ -1135,21 +1138,21 @@ declare const APPLICATIONS: {
1135
1138
  readonly apiUrl: "https://api.ol0.me";
1136
1139
  readonly domains: readonly ["api.ol0.me"];
1137
1140
  readonly routes: readonly ["api.ol0.me/*"];
1138
- readonly serviceId: "quro.api";
1141
+ readonly appId: "quro.api";
1139
1142
  }, {
1140
1143
  readonly name: "quro-redirect-system";
1141
1144
  readonly kind: "worker";
1142
1145
  readonly apiUrl: "https://ol0.me";
1143
1146
  readonly domains: readonly ["ol0.me"];
1144
1147
  readonly routes: readonly ["ol0.me/*"];
1145
- readonly serviceId: "quro.redirect";
1148
+ readonly appId: "quro.redirect";
1146
1149
  }, {
1147
1150
  readonly name: "quro-ui";
1148
1151
  readonly kind: "worker";
1149
1152
  readonly apiUrl: "https://quro.topolo.app";
1150
1153
  readonly domains: readonly ["quro.topolo.app"];
1151
1154
  readonly routes: readonly [];
1152
- readonly serviceId: null;
1155
+ readonly appId: null;
1153
1156
  }];
1154
1157
  };
1155
1158
  readonly roadmapper: {
@@ -1165,14 +1168,14 @@ declare const APPLICATIONS: {
1165
1168
  readonly apiUrl: "https://roadmapper.topolo.app";
1166
1169
  readonly domains: readonly ["roadmapper.topolo.app"];
1167
1170
  readonly routes: readonly [];
1168
- readonly serviceId: "roadmapper";
1171
+ readonly appId: "roadmapper";
1169
1172
  }, {
1170
1173
  readonly name: "topolo-roadmapper-api";
1171
1174
  readonly kind: "worker";
1172
1175
  readonly apiUrl: null;
1173
1176
  readonly domains: readonly [];
1174
1177
  readonly routes: readonly [];
1175
- readonly serviceId: null;
1178
+ readonly appId: null;
1176
1179
  }];
1177
1180
  };
1178
1181
  readonly sign: {
@@ -1188,14 +1191,14 @@ declare const APPLICATIONS: {
1188
1191
  readonly apiUrl: "https://sign.topolo.app";
1189
1192
  readonly domains: readonly ["sign.topolo.app"];
1190
1193
  readonly routes: readonly [];
1191
- readonly serviceId: "sign";
1194
+ readonly appId: "sign";
1192
1195
  }, {
1193
1196
  readonly name: "topolo-sign-api";
1194
1197
  readonly kind: "worker";
1195
1198
  readonly apiUrl: null;
1196
1199
  readonly domains: readonly [];
1197
1200
  readonly routes: readonly [];
1198
- readonly serviceId: null;
1201
+ readonly appId: null;
1199
1202
  }];
1200
1203
  };
1201
1204
  readonly social_studio: {
@@ -1211,21 +1214,21 @@ declare const APPLICATIONS: {
1211
1214
  readonly apiUrl: "https://studio.topolo.app";
1212
1215
  readonly domains: readonly ["studio.topolo.app"];
1213
1216
  readonly routes: readonly [];
1214
- readonly serviceId: "social_studio";
1217
+ readonly appId: "social_studio";
1215
1218
  }, {
1216
1219
  readonly name: "topolo-social-studio-api";
1217
1220
  readonly kind: "worker";
1218
1221
  readonly apiUrl: null;
1219
1222
  readonly domains: readonly [];
1220
1223
  readonly routes: readonly [];
1221
- readonly serviceId: null;
1224
+ readonly appId: null;
1222
1225
  }, {
1223
1226
  readonly name: "topolo-social-studio-queue";
1224
1227
  readonly kind: "worker";
1225
1228
  readonly apiUrl: null;
1226
1229
  readonly domains: readonly [];
1227
1230
  readonly routes: readonly [];
1228
- readonly serviceId: null;
1231
+ readonly appId: null;
1229
1232
  }];
1230
1233
  };
1231
1234
  readonly socialize: {
@@ -1241,21 +1244,21 @@ declare const APPLICATIONS: {
1241
1244
  readonly apiUrl: "https://socialize.topolo.app";
1242
1245
  readonly domains: readonly ["socialize.topolo.app"];
1243
1246
  readonly routes: readonly [];
1244
- readonly serviceId: "socialize";
1247
+ readonly appId: "socialize";
1245
1248
  }, {
1246
1249
  readonly name: "topolo-socialize-api";
1247
1250
  readonly kind: "worker";
1248
1251
  readonly apiUrl: "https://socialize-api.topolo.app";
1249
1252
  readonly domains: readonly ["socialize-api.topolo.app"];
1250
1253
  readonly routes: readonly [];
1251
- readonly serviceId: null;
1254
+ readonly appId: null;
1252
1255
  }, {
1253
1256
  readonly name: "topolo-socialize-scheduler";
1254
1257
  readonly kind: "worker";
1255
1258
  readonly apiUrl: null;
1256
1259
  readonly domains: readonly [];
1257
1260
  readonly routes: readonly [];
1258
- readonly serviceId: null;
1261
+ readonly appId: null;
1259
1262
  }];
1260
1263
  };
1261
1264
  readonly spaces: {
@@ -1271,14 +1274,14 @@ declare const APPLICATIONS: {
1271
1274
  readonly apiUrl: "https://spaces.topolo.app";
1272
1275
  readonly domains: readonly ["spaces.topolo.app"];
1273
1276
  readonly routes: readonly [];
1274
- readonly serviceId: "spaces";
1277
+ readonly appId: "spaces";
1275
1278
  }, {
1276
1279
  readonly name: "topolo-spaces-api";
1277
1280
  readonly kind: "worker";
1278
1281
  readonly apiUrl: null;
1279
1282
  readonly domains: readonly [];
1280
1283
  readonly routes: readonly [];
1281
- readonly serviceId: null;
1284
+ readonly appId: null;
1282
1285
  }];
1283
1286
  };
1284
1287
  readonly status: {
@@ -1294,7 +1297,7 @@ declare const APPLICATIONS: {
1294
1297
  readonly apiUrl: "https://status.topolo.app";
1295
1298
  readonly domains: readonly ["status.topolo.app"];
1296
1299
  readonly routes: readonly [];
1297
- readonly serviceId: "status";
1300
+ readonly appId: "status";
1298
1301
  }];
1299
1302
  };
1300
1303
  readonly success: {
@@ -1310,14 +1313,14 @@ declare const APPLICATIONS: {
1310
1313
  readonly apiUrl: "https://success.topolo.app";
1311
1314
  readonly domains: readonly ["success.topolo.app"];
1312
1315
  readonly routes: readonly ["success.topolo.app"];
1313
- readonly serviceId: "success";
1316
+ readonly appId: "success";
1314
1317
  }, {
1315
1318
  readonly name: "topolo-success-api";
1316
1319
  readonly kind: "worker";
1317
1320
  readonly apiUrl: null;
1318
1321
  readonly domains: readonly [];
1319
1322
  readonly routes: readonly [];
1320
- readonly serviceId: null;
1323
+ readonly appId: null;
1321
1324
  }];
1322
1325
  };
1323
1326
  readonly support: {
@@ -1333,14 +1336,14 @@ declare const APPLICATIONS: {
1333
1336
  readonly apiUrl: "https://support.topolo.app";
1334
1337
  readonly domains: readonly ["support.topolo.app"];
1335
1338
  readonly routes: readonly ["support.topolo.app/*"];
1336
- readonly serviceId: "support";
1339
+ readonly appId: "support";
1337
1340
  }, {
1338
1341
  readonly name: "topolo-support-api";
1339
1342
  readonly kind: "worker";
1340
1343
  readonly apiUrl: null;
1341
1344
  readonly domains: readonly [];
1342
1345
  readonly routes: readonly [];
1343
- readonly serviceId: null;
1346
+ readonly appId: null;
1344
1347
  }];
1345
1348
  };
1346
1349
  readonly survey: {
@@ -1356,14 +1359,14 @@ declare const APPLICATIONS: {
1356
1359
  readonly apiUrl: "https://survey.topolo.app";
1357
1360
  readonly domains: readonly ["survey.topolo.app"];
1358
1361
  readonly routes: readonly [];
1359
- readonly serviceId: "survey";
1362
+ readonly appId: "survey";
1360
1363
  }, {
1361
1364
  readonly name: "topolo-survey-api";
1362
1365
  readonly kind: "worker";
1363
1366
  readonly apiUrl: null;
1364
1367
  readonly domains: readonly [];
1365
1368
  readonly routes: readonly [];
1366
- readonly serviceId: null;
1369
+ readonly appId: null;
1367
1370
  }];
1368
1371
  };
1369
1372
  readonly voice: {
@@ -1379,14 +1382,14 @@ declare const APPLICATIONS: {
1379
1382
  readonly apiUrl: "https://voice.topolo.app";
1380
1383
  readonly domains: readonly ["voice.topolo.app"];
1381
1384
  readonly routes: readonly [];
1382
- readonly serviceId: "voice";
1385
+ readonly appId: "voice";
1383
1386
  }, {
1384
1387
  readonly name: "topolo-voice-api";
1385
1388
  readonly kind: "worker";
1386
1389
  readonly apiUrl: null;
1387
1390
  readonly domains: readonly [];
1388
1391
  readonly routes: readonly [];
1389
- readonly serviceId: null;
1392
+ readonly appId: null;
1390
1393
  }];
1391
1394
  };
1392
1395
  readonly web: {
@@ -1402,21 +1405,21 @@ declare const APPLICATIONS: {
1402
1405
  readonly apiUrl: null;
1403
1406
  readonly domains: readonly [];
1404
1407
  readonly routes: readonly [];
1405
- readonly serviceId: null;
1408
+ readonly appId: null;
1406
1409
  }, {
1407
1410
  readonly name: "topolo-web-runtime";
1408
1411
  readonly kind: "worker";
1409
1412
  readonly apiUrl: "https://sites.topolo.app";
1410
1413
  readonly domains: readonly ["sites.topolo.app"];
1411
1414
  readonly routes: readonly ["*.sites.topolo.app/*", "sites.topolo.app"];
1412
- readonly serviceId: null;
1415
+ readonly appId: null;
1413
1416
  }, {
1414
1417
  readonly name: "topolo-web-studio";
1415
1418
  readonly kind: "worker";
1416
1419
  readonly apiUrl: "https://web.topolo.app";
1417
1420
  readonly domains: readonly ["web.topolo.app"];
1418
1421
  readonly routes: readonly [];
1419
- readonly serviceId: "web";
1422
+ readonly appId: "web";
1420
1423
  }];
1421
1424
  };
1422
1425
  };
@@ -1573,7 +1576,7 @@ declare function auditAllApplicationRequirements(applicationIds?: readonly Appli
1573
1576
 
1574
1577
  declare const DEFAULT_SERVICE_URLS: Record<ServiceId, string>;
1575
1578
  interface ServiceCatalogUrlEntry {
1576
- serviceId?: string | null;
1579
+ appId?: string | null;
1577
1580
  slug?: string | null;
1578
1581
  name?: string | null;
1579
1582
  apiBaseUrl?: string | null;
@@ -1665,7 +1668,6 @@ interface P2PCapability {
1665
1668
  capability_id: string;
1666
1669
  publisher_org_id: string;
1667
1670
  app_id: string;
1668
- service_id: string;
1669
1671
  name: string;
1670
1672
  description: string;
1671
1673
  category: string;
@@ -1684,7 +1686,6 @@ interface PublishCapabilityInput {
1684
1686
  capability_id: string;
1685
1687
  publisher_org_id: string;
1686
1688
  app_id: string;
1687
- service_id: string;
1688
1689
  name: string;
1689
1690
  description: string;
1690
1691
  category: string;
@@ -1958,7 +1959,7 @@ declare const TOPOLO_WIDGET_ENDPOINT = "/api/widget";
1958
1959
  declare const TOPOLO_WIDGET_REFRESH_INTERVAL_MS = 60000;
1959
1960
  type TopoloWidgetType = "stats" | "recent-activity" | "quick-actions" | "notifications" | "chart";
1960
1961
  interface TopoloWidgetBase {
1961
- serviceId: string;
1962
+ appId: string;
1962
1963
  serviceName: string;
1963
1964
  serviceIcon?: string;
1964
1965
  type: TopoloWidgetType;
@@ -2043,7 +2044,7 @@ interface TopoloChartWidget extends TopoloWidgetBase {
2043
2044
  };
2044
2045
  }
2045
2046
  type TopoloWidget = TopoloStatsWidget | TopoloRecentActivityWidget | TopoloQuickActionsWidget | TopoloNotificationsWidget | TopoloChartWidget;
2046
- type TopoloWidgetWithOptionalMetadata<T extends TopoloWidget> = Omit<T, "serviceId" | "serviceName" | "lastUpdated"> & Partial<Pick<TopoloWidgetBase, "serviceId" | "serviceName" | "lastUpdated">>;
2047
+ type TopoloWidgetWithOptionalMetadata<T extends TopoloWidget> = Omit<T, "appId" | "serviceName" | "lastUpdated"> & Partial<Pick<TopoloWidgetBase, "appId" | "serviceName" | "lastUpdated">>;
2047
2048
  type TopoloWidgetDraft = TopoloWidget extends infer Widget ? Widget extends TopoloWidget ? TopoloWidgetWithOptionalMetadata<Widget> : never : never;
2048
2049
  interface TopoloWidgetApiResponse {
2049
2050
  success: boolean;
@@ -2051,7 +2052,7 @@ interface TopoloWidgetApiResponse {
2051
2052
  error?: string;
2052
2053
  }
2053
2054
  interface TopoloWidgetResponseOptions {
2054
- serviceId: string;
2055
+ appId: string;
2055
2056
  serviceName: string;
2056
2057
  widgets: TopoloWidgetDraft[];
2057
2058
  now?: Date | string;
@@ -2061,7 +2062,7 @@ interface TopoloWidgetValidationResult {
2061
2062
  errors: string[];
2062
2063
  }
2063
2064
  interface TopoloWidgetConfig {
2064
- serviceId: string;
2065
+ appId: string;
2065
2066
  serviceName: string;
2066
2067
  baseUrl: string;
2067
2068
  widgetEndpoint: string;
@@ -2073,7 +2074,7 @@ declare function defineTopoloRecentActivityWidget(widget: Omit<TopoloRecentActiv
2073
2074
  declare function defineTopoloQuickActionsWidget(widget: Omit<TopoloQuickActionsWidget, "type">): TopoloQuickActionsWidget;
2074
2075
  declare function defineTopoloNotificationsWidget(widget: Omit<TopoloNotificationsWidget, "type">): TopoloNotificationsWidget;
2075
2076
  declare function defineTopoloChartWidget(widget: Omit<TopoloChartWidget, "type">): TopoloChartWidget;
2076
- declare function createTopoloWidgetResponse({ serviceId, serviceName, widgets, now, }: TopoloWidgetResponseOptions): TopoloWidgetApiResponse;
2077
+ declare function createTopoloWidgetResponse({ appId, serviceName, widgets, now, }: TopoloWidgetResponseOptions): TopoloWidgetApiResponse;
2077
2078
  declare function createTopoloWidgetError(error: string): TopoloWidgetApiResponse;
2078
2079
  declare function validateTopoloWidgetResponse(response: unknown): TopoloWidgetValidationResult;
2079
2080