@ninedeploy/schemas 0.10.5 → 0.16.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.
Files changed (113) hide show
  1. package/LICENSE +21 -21
  2. package/dist/accessGrants.d.ts +156 -0
  3. package/dist/accessGrants.d.ts.map +1 -0
  4. package/dist/accessGrants.js +100 -0
  5. package/dist/accessGrants.js.map +1 -0
  6. package/dist/agentCommand.d.ts.map +1 -1
  7. package/dist/agentCommand.js +11 -1
  8. package/dist/agentCommand.js.map +1 -1
  9. package/dist/auth.d.ts +53 -0
  10. package/dist/auth.d.ts.map +1 -1
  11. package/dist/auth.js +26 -0
  12. package/dist/auth.js.map +1 -1
  13. package/dist/backupPolicy.d.ts +37 -0
  14. package/dist/backupPolicy.d.ts.map +1 -0
  15. package/dist/backupPolicy.js +50 -0
  16. package/dist/backupPolicy.js.map +1 -0
  17. package/dist/common.d.ts +21 -5
  18. package/dist/common.d.ts.map +1 -1
  19. package/dist/common.js +35 -6
  20. package/dist/common.js.map +1 -1
  21. package/dist/databaseImport.d.ts +145 -0
  22. package/dist/databaseImport.d.ts.map +1 -0
  23. package/dist/databaseImport.js +115 -0
  24. package/dist/databaseImport.js.map +1 -0
  25. package/dist/doctor.d.ts +16 -0
  26. package/dist/doctor.d.ts.map +1 -1
  27. package/dist/doctor.js +25 -0
  28. package/dist/doctor.js.map +1 -1
  29. package/dist/githubApp.d.ts +236 -0
  30. package/dist/githubApp.d.ts.map +1 -0
  31. package/dist/githubApp.js +223 -0
  32. package/dist/githubApp.js.map +1 -0
  33. package/dist/index.d.ts +11 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +11 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/kernel.d.ts +5 -2
  38. package/dist/kernel.d.ts.map +1 -1
  39. package/dist/kernel.js +11 -2
  40. package/dist/kernel.js.map +1 -1
  41. package/dist/management.d.ts +46 -2
  42. package/dist/management.d.ts.map +1 -1
  43. package/dist/management.js +68 -15
  44. package/dist/management.js.map +1 -1
  45. package/dist/multiNode.d.ts +325 -0
  46. package/dist/multiNode.d.ts.map +1 -0
  47. package/dist/multiNode.js +294 -0
  48. package/dist/multiNode.js.map +1 -0
  49. package/dist/ninedeployManifest.d.ts.map +1 -1
  50. package/dist/ninedeployManifest.js +6 -3
  51. package/dist/ninedeployManifest.js.map +1 -1
  52. package/dist/panelBackup.d.ts +73 -0
  53. package/dist/panelBackup.d.ts.map +1 -0
  54. package/dist/panelBackup.js +45 -0
  55. package/dist/panelBackup.js.map +1 -0
  56. package/dist/proxyConfig.d.ts +132 -0
  57. package/dist/proxyConfig.d.ts.map +1 -0
  58. package/dist/proxyConfig.js +105 -0
  59. package/dist/proxyConfig.js.map +1 -0
  60. package/dist/publicAccess.d.ts +64 -0
  61. package/dist/publicAccess.d.ts.map +1 -0
  62. package/dist/publicAccess.js +63 -0
  63. package/dist/publicAccess.js.map +1 -0
  64. package/dist/secretProviders.d.ts +119 -0
  65. package/dist/secretProviders.d.ts.map +1 -0
  66. package/dist/secretProviders.js +130 -0
  67. package/dist/secretProviders.js.map +1 -0
  68. package/dist/secretScan.js +1 -1
  69. package/dist/service.d.ts +27 -17
  70. package/dist/service.d.ts.map +1 -1
  71. package/dist/service.js +76 -26
  72. package/dist/service.js.map +1 -1
  73. package/dist/terminals.d.ts +284 -0
  74. package/dist/terminals.d.ts.map +1 -0
  75. package/dist/terminals.js +177 -0
  76. package/dist/terminals.js.map +1 -0
  77. package/dist/traffic.d.ts +276 -0
  78. package/dist/traffic.d.ts.map +1 -0
  79. package/dist/traffic.js +103 -0
  80. package/dist/traffic.js.map +1 -0
  81. package/dist/workspaces.d.ts +19 -1
  82. package/dist/workspaces.d.ts.map +1 -1
  83. package/dist/workspaces.js +26 -0
  84. package/dist/workspaces.js.map +1 -1
  85. package/package.json +5 -4
  86. package/src/accessGrants.ts +117 -0
  87. package/src/agentCommand.ts +67 -0
  88. package/src/ai.ts +32 -0
  89. package/src/auth.ts +323 -0
  90. package/src/backupPolicy.ts +55 -0
  91. package/src/common.ts +179 -0
  92. package/src/databaseImport.ts +138 -0
  93. package/src/doctor.ts +161 -0
  94. package/src/environments.ts +23 -0
  95. package/src/githubApp.ts +268 -0
  96. package/src/index.ts +30 -0
  97. package/src/insights.ts +78 -0
  98. package/src/kernel.ts +180 -0
  99. package/src/labels.ts +86 -0
  100. package/src/management.ts +620 -0
  101. package/src/multiNode.ts +354 -0
  102. package/src/ninedeployManifest.ts +363 -0
  103. package/src/panelBackup.ts +90 -0
  104. package/src/project.ts +42 -0
  105. package/src/proxyConfig.ts +139 -0
  106. package/src/publicAccess.ts +80 -0
  107. package/src/runtimeVersions.ts +232 -0
  108. package/src/secretProviders.ts +159 -0
  109. package/src/secretScan.ts +169 -0
  110. package/src/service.ts +1044 -0
  111. package/src/terminals.ts +212 -0
  112. package/src/traffic.ts +130 -0
  113. package/src/workspaces.ts +215 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminals.js","sourceRoot":"","sources":["../src/terminals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,+EAA+E;AAC/E,6EAA6E;AAC7E,yEAAyE;AACzE,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,8DAA8D;AAE9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AACnC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AACrC,oFAAoF;AACpF,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,GAAG,IAAI,CAAC;AAClD,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAE9C,wDAAwD;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AAGvF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAGjG,8EAA8E;AAC9E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,oCAAoC,EAAE,0BAA0B,CAAC,CAAC;AAExH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACzD,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC1B,SAAS,EAAE,EAAE;QACb,8DAA8D;QAC9D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QACnD,qFAAqF;QACrF,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;KACxB,CAAC;SACD,MAAM,EAAE;IACX,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAC3B,UAAU,EAAE,EAAE;QACd,gEAAgE;QAChE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;KACnD,CAAC;SACD,MAAM,EAAE;IACX,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE;IAChF,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACvB,6BAA6B;QAC7B,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;KACxB,CAAC;SACD,MAAM,EAAE;CACZ,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC3F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAE3F,gFAAgF;AAChF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,MAAM,EAAE,cAAc;IACtB,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;IAC/B,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CACjD,CAAC;KACD,MAAM,EAAE,CAAC;AAIZ,uEAAuE;AACvE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,EAAE;IACF,MAAM,EAAE,qBAAqB;IAC7B,UAAU,EAAE,kBAAkB;IAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,6BAA6B;IAC7B,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;IACvB,MAAM,EAAE,EAAE,CAAC,QAAQ,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACrD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACvC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAGH,oFAAoF;AACpF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,kCAAkC;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gCAAgC,CAAC;CAC/D,CAAC,CAAC;AAGH,gGAAgG;AAChG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAC/B,UAAU,EAAE,EAAE,CAAC,QAAQ,EAAE;CAC1B,CAAC,CAAC;AAGH,uHAAuH;AACvH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;CACrB,CAAC,CAAC;AAGH,uEAAuE;AACvE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC;KACtC,MAAM,CAAC;IACN,MAAM,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IACxC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACrD,UAAU,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACjF,2CAA2C;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACtD,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE;IAChC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IACpD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CAC1C,CAAC;KACD,OAAO,EAAE;KACT,MAAM,EAAE,CAAC;AAGZ,2EAA2E;AAC3E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE;IAChC,oFAAoF;IACpF,0BAA0B,EAAE,CAAC,CAAC,OAAO,EAAE;IACvC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACpC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACnC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC/B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CAChC,CAAC,CAAC;AAGH,0FAA0F;AAC1F,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,mBAAmB,EAAE,KAAK;IAC1B,kBAAkB,EAAE,EAAE;IACtB,iBAAiB,EAAE,GAAG;IACtB,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,GAAG;CACV,CAAC;AAEX,8EAA8E;AAC9E,6EAA6E;AAE7E,mCAAmC;AACnC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE;IAC7D,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACrF,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;CAC5C,CAAC,CAAC;AAGH,mCAAmC;AACnC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE;IAC7D,CAAC,CAAC,MAAM,CAAC;QACP,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACrB,SAAS,EAAE,EAAE;QACb,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;KAC3F,CAAC;IACF,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACzD,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;CAC1F,CAAC,CAAC;AAGH,kDAAkD;AAClD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,IAAI;IACnB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,IAAI;CACf,CAAC;AAEX,6EAA6E;AAC7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAC1D,MAAM,CAAC,MAAM,+BAA+B,GAAG,oBAAoB,CAAC"}
@@ -0,0 +1,276 @@
1
+ import { z } from 'zod';
2
+ export declare const TRAFFIC_RETENTION_DAYS_MIN = 1;
3
+ export declare const TRAFFIC_RETENTION_DAYS_MAX = 400;
4
+ export declare const TRAFFIC_RETENTION_DAYS_DEFAULT = 30;
5
+ export declare const TRAFFIC_TOP_MAX = 50;
6
+ /** Bucket widths in seconds: minute rows and hour rows. */
7
+ export declare const TRAFFIC_GRANULARITIES: readonly [60, 3600];
8
+ export declare const trafficGranularity: z.ZodUnion<readonly [z.ZodLiteral<60>, z.ZodLiteral<3600>]>;
9
+ export type TrafficGranularity = z.infer<typeof trafficGranularity>;
10
+ /** Upper edges (ms) of the latency histogram; one overflow bucket follows. */
11
+ export declare const TRAFFIC_LATENCY_EDGES_MS: readonly [5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000];
12
+ /** Buckets in `latencyHist`: one per edge plus the overflow. */
13
+ export declare const TRAFFIC_LATENCY_BUCKETS: number;
14
+ export declare const trafficRange: z.ZodEnum<{
15
+ "1h": "1h";
16
+ "24h": "24h";
17
+ "30d": "30d";
18
+ "7d": "7d";
19
+ }>;
20
+ export type TrafficRange = z.infer<typeof trafficRange>;
21
+ /** Minute buckets for 1h/24h, hour buckets for 7d/30d. */
22
+ export declare function trafficRangeGranularity(range: TrafficRange): TrafficGranularity;
23
+ export declare const trafficStatus: z.ZodEnum<{
24
+ error: "error";
25
+ off: "off";
26
+ running: "running";
27
+ starting: "starting";
28
+ }>;
29
+ export type TrafficStatus = z.infer<typeof trafficStatus>;
30
+ /** PUT /v1/traffic/settings (operator). Enabling or disabling recreates Traefik once. */
31
+ export declare const trafficSettingsUpdate: z.ZodObject<{
32
+ enabled: z.ZodOptional<z.ZodBoolean>;
33
+ retentionDays: z.ZodOptional<z.ZodNumber>;
34
+ }, z.core.$strict>;
35
+ export type TrafficSettingsUpdate = z.infer<typeof trafficSettingsUpdate>;
36
+ /** GET /v1/traffic/settings, and the PUT answer. */
37
+ export declare const trafficSettingsView: z.ZodObject<{
38
+ enabled: z.ZodBoolean;
39
+ retentionDays: z.ZodNumber;
40
+ status: z.ZodEnum<{
41
+ error: "error";
42
+ off: "off";
43
+ running: "running";
44
+ starting: "starting";
45
+ }>;
46
+ lastError: z.ZodNullable<z.ZodString>;
47
+ lastIngestAt: z.ZodNullable<z.ZodString>;
48
+ logBytes: z.ZodNumber;
49
+ malformedLines: z.ZodNumber;
50
+ dockerLogDriver: z.ZodNullable<z.ZodString>;
51
+ }, z.core.$strip>;
52
+ export type TrafficSettingsView = z.infer<typeof trafficSettingsView>;
53
+ /** GET /v1/traffic/summary and /v1/services/:id/traffic query. */
54
+ export declare const trafficSummaryQuery: z.ZodObject<{
55
+ range: z.ZodDefault<z.ZodEnum<{
56
+ "1h": "1h";
57
+ "24h": "24h";
58
+ "30d": "30d";
59
+ "7d": "7d";
60
+ }>>;
61
+ top: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
62
+ }, z.core.$strict>;
63
+ export type TrafficSummaryQuery = z.infer<typeof trafficSummaryQuery>;
64
+ /** Counters shared by a bucket, a domain row and the totals. */
65
+ export declare const trafficCounters: z.ZodObject<{
66
+ requests: z.ZodNumber;
67
+ status1xx: z.ZodNumber;
68
+ status2xx: z.ZodNumber;
69
+ status3xx: z.ZodNumber;
70
+ status4xx: z.ZodNumber;
71
+ status5xx: z.ZodNumber;
72
+ statusOther: z.ZodNumber;
73
+ bytesOut: z.ZodNumber;
74
+ durationSumMs: z.ZodNumber;
75
+ durationMaxMs: z.ZodNumber;
76
+ }, z.core.$strip>;
77
+ export type TrafficCounters = z.infer<typeof trafficCounters>;
78
+ /** Percentiles estimated from the histogram; null when there were no requests. */
79
+ export declare const trafficPercentiles: z.ZodObject<{
80
+ p50Ms: z.ZodNullable<z.ZodNumber>;
81
+ p95Ms: z.ZodNullable<z.ZodNumber>;
82
+ p99Ms: z.ZodNullable<z.ZodNumber>;
83
+ }, z.core.$strip>;
84
+ export type TrafficPercentiles = z.infer<typeof trafficPercentiles>;
85
+ export declare const trafficBucket: z.ZodObject<{
86
+ requests: z.ZodNumber;
87
+ status1xx: z.ZodNumber;
88
+ status2xx: z.ZodNumber;
89
+ status3xx: z.ZodNumber;
90
+ status4xx: z.ZodNumber;
91
+ status5xx: z.ZodNumber;
92
+ statusOther: z.ZodNumber;
93
+ bytesOut: z.ZodNumber;
94
+ durationSumMs: z.ZodNumber;
95
+ durationMaxMs: z.ZodNumber;
96
+ t: z.ZodString;
97
+ }, z.core.$strip>;
98
+ export type TrafficBucket = z.infer<typeof trafficBucket>;
99
+ /** One domain (or the panel / custom / other bucket) over the range. */
100
+ export declare const trafficScopeTotal: z.ZodObject<{
101
+ requests: z.ZodNumber;
102
+ status1xx: z.ZodNumber;
103
+ status2xx: z.ZodNumber;
104
+ status3xx: z.ZodNumber;
105
+ status4xx: z.ZodNumber;
106
+ status5xx: z.ZodNumber;
107
+ statusOther: z.ZodNumber;
108
+ bytesOut: z.ZodNumber;
109
+ durationSumMs: z.ZodNumber;
110
+ durationMaxMs: z.ZodNumber;
111
+ p50Ms: z.ZodNullable<z.ZodNumber>;
112
+ p95Ms: z.ZodNullable<z.ZodNumber>;
113
+ p99Ms: z.ZodNullable<z.ZodNumber>;
114
+ scopeKey: z.ZodString;
115
+ domainId: z.ZodNullable<z.ZodNumber>;
116
+ serviceId: z.ZodNullable<z.ZodNumber>;
117
+ host: z.ZodNullable<z.ZodString>;
118
+ }, z.core.$strip>;
119
+ export type TrafficScopeTotal = z.infer<typeof trafficScopeTotal>;
120
+ /** GET /v1/traffic/summary (operator): the whole instance. */
121
+ export declare const trafficSummary: z.ZodObject<{
122
+ enabled: z.ZodBoolean;
123
+ range: z.ZodEnum<{
124
+ "1h": "1h";
125
+ "24h": "24h";
126
+ "30d": "30d";
127
+ "7d": "7d";
128
+ }>;
129
+ granularity: z.ZodUnion<readonly [z.ZodLiteral<60>, z.ZodLiteral<3600>]>;
130
+ totals: z.ZodObject<{
131
+ requests: z.ZodNumber;
132
+ status1xx: z.ZodNumber;
133
+ status2xx: z.ZodNumber;
134
+ status3xx: z.ZodNumber;
135
+ status4xx: z.ZodNumber;
136
+ status5xx: z.ZodNumber;
137
+ statusOther: z.ZodNumber;
138
+ bytesOut: z.ZodNumber;
139
+ durationSumMs: z.ZodNumber;
140
+ durationMaxMs: z.ZodNumber;
141
+ p50Ms: z.ZodNullable<z.ZodNumber>;
142
+ p95Ms: z.ZodNullable<z.ZodNumber>;
143
+ p99Ms: z.ZodNullable<z.ZodNumber>;
144
+ }, z.core.$strip>;
145
+ series: z.ZodArray<z.ZodObject<{
146
+ requests: z.ZodNumber;
147
+ status1xx: z.ZodNumber;
148
+ status2xx: z.ZodNumber;
149
+ status3xx: z.ZodNumber;
150
+ status4xx: z.ZodNumber;
151
+ status5xx: z.ZodNumber;
152
+ statusOther: z.ZodNumber;
153
+ bytesOut: z.ZodNumber;
154
+ durationSumMs: z.ZodNumber;
155
+ durationMaxMs: z.ZodNumber;
156
+ t: z.ZodString;
157
+ }, z.core.$strip>>;
158
+ topDomains: z.ZodArray<z.ZodObject<{
159
+ requests: z.ZodNumber;
160
+ status1xx: z.ZodNumber;
161
+ status2xx: z.ZodNumber;
162
+ status3xx: z.ZodNumber;
163
+ status4xx: z.ZodNumber;
164
+ status5xx: z.ZodNumber;
165
+ statusOther: z.ZodNumber;
166
+ bytesOut: z.ZodNumber;
167
+ durationSumMs: z.ZodNumber;
168
+ durationMaxMs: z.ZodNumber;
169
+ p50Ms: z.ZodNullable<z.ZodNumber>;
170
+ p95Ms: z.ZodNullable<z.ZodNumber>;
171
+ p99Ms: z.ZodNullable<z.ZodNumber>;
172
+ scopeKey: z.ZodString;
173
+ domainId: z.ZodNullable<z.ZodNumber>;
174
+ serviceId: z.ZodNullable<z.ZodNumber>;
175
+ host: z.ZodNullable<z.ZodString>;
176
+ }, z.core.$strip>>;
177
+ panel: z.ZodNullable<z.ZodObject<{
178
+ requests: z.ZodNumber;
179
+ status1xx: z.ZodNumber;
180
+ status2xx: z.ZodNumber;
181
+ status3xx: z.ZodNumber;
182
+ status4xx: z.ZodNumber;
183
+ status5xx: z.ZodNumber;
184
+ statusOther: z.ZodNumber;
185
+ bytesOut: z.ZodNumber;
186
+ durationSumMs: z.ZodNumber;
187
+ durationMaxMs: z.ZodNumber;
188
+ p50Ms: z.ZodNullable<z.ZodNumber>;
189
+ p95Ms: z.ZodNullable<z.ZodNumber>;
190
+ p99Ms: z.ZodNullable<z.ZodNumber>;
191
+ scopeKey: z.ZodString;
192
+ domainId: z.ZodNullable<z.ZodNumber>;
193
+ serviceId: z.ZodNullable<z.ZodNumber>;
194
+ host: z.ZodNullable<z.ZodString>;
195
+ }, z.core.$strip>>;
196
+ custom: z.ZodNullable<z.ZodObject<{
197
+ requests: z.ZodNumber;
198
+ status1xx: z.ZodNumber;
199
+ status2xx: z.ZodNumber;
200
+ status3xx: z.ZodNumber;
201
+ status4xx: z.ZodNumber;
202
+ status5xx: z.ZodNumber;
203
+ statusOther: z.ZodNumber;
204
+ bytesOut: z.ZodNumber;
205
+ durationSumMs: z.ZodNumber;
206
+ durationMaxMs: z.ZodNumber;
207
+ p50Ms: z.ZodNullable<z.ZodNumber>;
208
+ p95Ms: z.ZodNullable<z.ZodNumber>;
209
+ p99Ms: z.ZodNullable<z.ZodNumber>;
210
+ scopeKey: z.ZodString;
211
+ domainId: z.ZodNullable<z.ZodNumber>;
212
+ serviceId: z.ZodNullable<z.ZodNumber>;
213
+ host: z.ZodNullable<z.ZodString>;
214
+ }, z.core.$strip>>;
215
+ }, z.core.$strip>;
216
+ export type TrafficSummary = z.infer<typeof trafficSummary>;
217
+ /** GET /v1/services/:id/traffic (any seat on the service). Empty series, never 404, without data. */
218
+ export declare const serviceTrafficSummary: z.ZodObject<{
219
+ enabled: z.ZodBoolean;
220
+ range: z.ZodEnum<{
221
+ "1h": "1h";
222
+ "24h": "24h";
223
+ "30d": "30d";
224
+ "7d": "7d";
225
+ }>;
226
+ granularity: z.ZodUnion<readonly [z.ZodLiteral<60>, z.ZodLiteral<3600>]>;
227
+ totals: z.ZodObject<{
228
+ requests: z.ZodNumber;
229
+ status1xx: z.ZodNumber;
230
+ status2xx: z.ZodNumber;
231
+ status3xx: z.ZodNumber;
232
+ status4xx: z.ZodNumber;
233
+ status5xx: z.ZodNumber;
234
+ statusOther: z.ZodNumber;
235
+ bytesOut: z.ZodNumber;
236
+ durationSumMs: z.ZodNumber;
237
+ durationMaxMs: z.ZodNumber;
238
+ p50Ms: z.ZodNullable<z.ZodNumber>;
239
+ p95Ms: z.ZodNullable<z.ZodNumber>;
240
+ p99Ms: z.ZodNullable<z.ZodNumber>;
241
+ }, z.core.$strip>;
242
+ series: z.ZodArray<z.ZodObject<{
243
+ requests: z.ZodNumber;
244
+ status1xx: z.ZodNumber;
245
+ status2xx: z.ZodNumber;
246
+ status3xx: z.ZodNumber;
247
+ status4xx: z.ZodNumber;
248
+ status5xx: z.ZodNumber;
249
+ statusOther: z.ZodNumber;
250
+ bytesOut: z.ZodNumber;
251
+ durationSumMs: z.ZodNumber;
252
+ durationMaxMs: z.ZodNumber;
253
+ t: z.ZodString;
254
+ }, z.core.$strip>>;
255
+ domains: z.ZodArray<z.ZodObject<{
256
+ requests: z.ZodNumber;
257
+ status1xx: z.ZodNumber;
258
+ status2xx: z.ZodNumber;
259
+ status3xx: z.ZodNumber;
260
+ status4xx: z.ZodNumber;
261
+ status5xx: z.ZodNumber;
262
+ statusOther: z.ZodNumber;
263
+ bytesOut: z.ZodNumber;
264
+ durationSumMs: z.ZodNumber;
265
+ durationMaxMs: z.ZodNumber;
266
+ p50Ms: z.ZodNullable<z.ZodNumber>;
267
+ p95Ms: z.ZodNullable<z.ZodNumber>;
268
+ p99Ms: z.ZodNullable<z.ZodNumber>;
269
+ scopeKey: z.ZodString;
270
+ domainId: z.ZodNullable<z.ZodNumber>;
271
+ serviceId: z.ZodNullable<z.ZodNumber>;
272
+ host: z.ZodNullable<z.ZodString>;
273
+ }, z.core.$strip>>;
274
+ }, z.core.$strip>;
275
+ export type ServiceTrafficSummary = z.infer<typeof serviceTrafficSummary>;
276
+ //# sourceMappingURL=traffic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traffic.d.ts","sourceRoot":"","sources":["../src/traffic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ import { z } from 'zod';
2
+ // ── Traffic analytics (0.15) ────────────────────────────────────────────────
3
+ // Request and response shapes for `/v1/traffic` and
4
+ // `/v1/services/:id/traffic`. Analytics is opt-in everywhere (owner decision
5
+ // O3): with it off, Traefik's static config is byte-identical to 0.14. Only
6
+ // aggregate counters are kept — no client IP, path, query string or header.
7
+ // Design: DESIGN.md §2.
8
+ export const TRAFFIC_RETENTION_DAYS_MIN = 1;
9
+ export const TRAFFIC_RETENTION_DAYS_MAX = 400;
10
+ export const TRAFFIC_RETENTION_DAYS_DEFAULT = 30;
11
+ export const TRAFFIC_TOP_MAX = 50;
12
+ /** Bucket widths in seconds: minute rows and hour rows. */
13
+ export const TRAFFIC_GRANULARITIES = [60, 3600];
14
+ export const trafficGranularity = z.union([z.literal(60), z.literal(3600)]);
15
+ /** Upper edges (ms) of the latency histogram; one overflow bucket follows. */
16
+ export const TRAFFIC_LATENCY_EDGES_MS = [5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000];
17
+ /** Buckets in `latencyHist`: one per edge plus the overflow. */
18
+ export const TRAFFIC_LATENCY_BUCKETS = TRAFFIC_LATENCY_EDGES_MS.length + 1;
19
+ export const trafficRange = z.enum(['1h', '24h', '7d', '30d']);
20
+ /** Minute buckets for 1h/24h, hour buckets for 7d/30d. */
21
+ export function trafficRangeGranularity(range) {
22
+ return range === '1h' || range === '24h' ? 60 : 3600;
23
+ }
24
+ export const trafficStatus = z.enum(['off', 'starting', 'running', 'error']);
25
+ /** PUT /v1/traffic/settings (operator). Enabling or disabling recreates Traefik once. */
26
+ export const trafficSettingsUpdate = z
27
+ .object({
28
+ enabled: z.boolean().optional(),
29
+ retentionDays: z.number().int().min(TRAFFIC_RETENTION_DAYS_MIN).max(TRAFFIC_RETENTION_DAYS_MAX).optional(),
30
+ })
31
+ .strict();
32
+ /** GET /v1/traffic/settings, and the PUT answer. */
33
+ export const trafficSettingsView = z.object({
34
+ enabled: z.boolean(),
35
+ retentionDays: z.number().int(),
36
+ status: trafficStatus,
37
+ lastError: z.string().nullable(),
38
+ lastIngestAt: z.string().nullable(),
39
+ logBytes: z.number().int().nonnegative(),
40
+ malformedLines: z.number().int().nonnegative(),
41
+ /** `docker info` LoggingDriver; null when Docker did not answer. */
42
+ dockerLogDriver: z.string().nullable(),
43
+ });
44
+ /** GET /v1/traffic/summary and /v1/services/:id/traffic query. */
45
+ export const trafficSummaryQuery = z
46
+ .object({
47
+ range: trafficRange.default('24h'),
48
+ top: z.coerce.number().int().min(1).max(TRAFFIC_TOP_MAX).default(10),
49
+ })
50
+ .strict();
51
+ /** Counters shared by a bucket, a domain row and the totals. */
52
+ export const trafficCounters = z.object({
53
+ requests: z.number().int().nonnegative(),
54
+ status1xx: z.number().int().nonnegative(),
55
+ status2xx: z.number().int().nonnegative(),
56
+ status3xx: z.number().int().nonnegative(),
57
+ status4xx: z.number().int().nonnegative(),
58
+ status5xx: z.number().int().nonnegative(),
59
+ statusOther: z.number().int().nonnegative(),
60
+ bytesOut: z.number().int().nonnegative(),
61
+ durationSumMs: z.number().int().nonnegative(),
62
+ durationMaxMs: z.number().int().nonnegative(),
63
+ });
64
+ /** Percentiles estimated from the histogram; null when there were no requests. */
65
+ export const trafficPercentiles = z.object({
66
+ p50Ms: z.number().nonnegative().nullable(),
67
+ p95Ms: z.number().nonnegative().nullable(),
68
+ p99Ms: z.number().nonnegative().nullable(),
69
+ });
70
+ export const trafficBucket = trafficCounters.extend({
71
+ /** Bucket start, ISO 8601. */
72
+ t: z.string(),
73
+ });
74
+ /** One domain (or the panel / custom / other bucket) over the range. */
75
+ export const trafficScopeTotal = trafficCounters.extend(trafficPercentiles.shape).extend({
76
+ /** `d:<domainId>` | `panel` | `custom` | `other`. */
77
+ scopeKey: z.string(),
78
+ domainId: z.number().int().positive().nullable(),
79
+ serviceId: z.number().int().positive().nullable(),
80
+ /** The host as recorded, kept after the domain is deleted. */
81
+ host: z.string().nullable(),
82
+ });
83
+ /** GET /v1/traffic/summary (operator): the whole instance. */
84
+ export const trafficSummary = z.object({
85
+ enabled: z.boolean(),
86
+ range: trafficRange,
87
+ granularity: trafficGranularity,
88
+ totals: trafficCounters.extend(trafficPercentiles.shape),
89
+ series: z.array(trafficBucket),
90
+ topDomains: z.array(trafficScopeTotal),
91
+ panel: trafficScopeTotal.nullable(),
92
+ custom: trafficScopeTotal.nullable(),
93
+ });
94
+ /** GET /v1/services/:id/traffic (any seat on the service). Empty series, never 404, without data. */
95
+ export const serviceTrafficSummary = z.object({
96
+ enabled: z.boolean(),
97
+ range: trafficRange,
98
+ granularity: trafficGranularity,
99
+ totals: trafficCounters.extend(trafficPercentiles.shape),
100
+ series: z.array(trafficBucket),
101
+ domains: z.array(trafficScopeTotal),
102
+ });
103
+ //# sourceMappingURL=traffic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traffic.js","sourceRoot":"","sources":["../src/traffic.ts"],"names":[],"mappings":"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"}
@@ -123,6 +123,11 @@ export interface WorkspaceInvitationPublic {
123
123
  invitedByName: string | null;
124
124
  expiresAt: string;
125
125
  }
126
+ /**
127
+ * r507: one allowed email domain for an SSO provider (`corp.com`; a leading
128
+ * `@` is tolerated and dropped). Matching is exact — list subdomains you mean.
129
+ */
130
+ export declare const oidcAllowedDomain: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>;
126
131
  export declare const oidcProviderCreate: z.ZodObject<{
127
132
  name: z.ZodString;
128
133
  slug: z.ZodString;
@@ -136,9 +141,15 @@ export declare const oidcProviderCreate: z.ZodObject<{
136
141
  admin: "admin";
137
142
  member: "member";
138
143
  }>>;
144
+ allowedDomains: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>>;
139
145
  }, z.core.$strip>;
140
146
  export type OidcProviderCreate = z.infer<typeof oidcProviderCreate>;
141
- export type OidcProviderCreateInput = OidcProviderCreate;
147
+ /**
148
+ * What a client sends: fields with a server-side default are optional (F1014:
149
+ * so a caller never has to send the deprecated `defaultRole`). Same shape as
150
+ * the other `*Input` aliases (`z.input`).
151
+ */
152
+ export type OidcProviderCreateInput = z.input<typeof oidcProviderCreate>;
142
153
  export declare const oidcProviderUpdate: z.ZodObject<{
143
154
  name: z.ZodOptional<z.ZodString>;
144
155
  issuerUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -151,6 +162,7 @@ export declare const oidcProviderUpdate: z.ZodObject<{
151
162
  admin: "admin";
152
163
  member: "member";
153
164
  }>>;
165
+ allowedDomains: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>>;
154
166
  }, z.core.$strip>;
155
167
  export type OidcProviderUpdate = z.infer<typeof oidcProviderUpdate>;
156
168
  export type OidcProviderUpdateInput = OidcProviderUpdate;
@@ -163,7 +175,13 @@ export interface OidcProviderEntry {
163
175
  scopes: string;
164
176
  enabled: boolean;
165
177
  autoEnroll: boolean;
178
+ /**
179
+ * @deprecated F1014: the stored value, echoed for compatibility. It has no
180
+ * effect on OIDC sign-ins; see oidcProviderCreate.defaultRole.
181
+ */
166
182
  defaultRole: 'admin' | 'member';
183
+ /** r507: email domains allowed to sign in / enroll; empty = unrestricted. */
184
+ allowedDomains: string[];
167
185
  createdAt: string;
168
186
  updatedAt: string;
169
187
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../src/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,iBAAiB;;;;;EAAiD,CAAC;AAChF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE9D;;;;8EAI8E;AAC9E,eAAO,MAAM,2BAA2B;;;;EAAwC,CAAC;AACjF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAElF,eAAO,MAAM,eAAe;;;;iBAI1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC9D,MAAM,MAAM,oBAAoB,GAAG,eAAe,CAAC;AAEnD,eAAO,MAAM,eAAe;;;iBAKiD,CAAC;AAC9E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC9D,MAAM,MAAM,oBAAoB,GAAG,eAAe,CAAC;AAEnD,eAAO,MAAM,kBAAkB;;;;;;;iBAG7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACpE,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;AAEzD,eAAO,MAAM,yBAAyB;;;;;;;iBAEpC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAClF,MAAM,MAAM,8BAA8B,GAAG,yBAAyB,CAAC;AAEvE,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC;AAEvC,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,OAAO,EAAE,oBAAoB,EAAE,CAAC;CACjC;AAOD,eAAO,MAAM,yBAAyB;;;;;;;iBAGpC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAClF,MAAM,MAAM,8BAA8B,GAAG,yBAAyB,CAAC;AAEvE,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,iFAAiF;AACjF,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;iBAU7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACpE,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;AAEzD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;iBAW8C,CAAC;AAC9E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACpE,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,GAAG,QAAQ,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../src/workspaces.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,21 @@ export const workspaceInvitationCreate = z.object({
35
35
  role: assignableWorkspaceRoleEnum.default('member'),
36
36
  });
37
37
  // ─── OIDC & OAuth2 SSO Schemas ───────────────────────────────────────────────
38
+ /**
39
+ * r507: one allowed email domain for an SSO provider (`corp.com`; a leading
40
+ * `@` is tolerated and dropped). Matching is exact — list subdomains you mean.
41
+ */
42
+ export const oidcAllowedDomain = z
43
+ .string()
44
+ .trim()
45
+ .toLowerCase()
46
+ .transform((v) => v.replace(/^@/, ''))
47
+ .pipe(z
48
+ .string()
49
+ .min(3)
50
+ .max(253)
51
+ .regex(/^(?=.{1,253}$)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z][a-z0-9-]{0,61}[a-z0-9]$/, 'must be a domain like corp.com'));
52
+ const oidcAllowedDomains = z.array(oidcAllowedDomain).max(50);
38
53
  export const oidcProviderCreate = z.object({
39
54
  name: z.string().trim().min(2).max(63),
40
55
  slug: slug,
@@ -44,7 +59,16 @@ export const oidcProviderCreate = z.object({
44
59
  scopes: z.string().trim().default('openid profile email'),
45
60
  enabled: z.boolean().default(true),
46
61
  autoEnroll: z.boolean().default(true),
62
+ /**
63
+ * @deprecated F1014: IGNORED for OIDC sign-ins. Since D1/F146 a user an OIDC
64
+ * provider enrolls always owns their own personal workspace, and an OIDC
65
+ * provider maps users into no team workspace, so nothing reads this role.
66
+ * Team seats come from invitations (which carry their own role) or SCIM.
67
+ * Still accepted and stored so existing clients and rows keep working.
68
+ */
47
69
  defaultRole: z.enum(['admin', 'member']).default('member'),
70
+ /** r507: empty (the default) = any verified email the IdP vouches for. */
71
+ allowedDomains: oidcAllowedDomains.optional(),
48
72
  });
49
73
  export const oidcProviderUpdate = z
50
74
  .object({
@@ -55,7 +79,9 @@ export const oidcProviderUpdate = z
55
79
  scopes: z.string().trim().optional(),
56
80
  enabled: z.boolean().optional(),
57
81
  autoEnroll: z.boolean().optional(),
82
+ /** @deprecated F1014: ignored for OIDC sign-ins; see oidcProviderCreate.defaultRole. */
58
83
  defaultRole: z.enum(['admin', 'member']).optional(),
84
+ allowedDomains: oidcAllowedDomains.optional(),
59
85
  })
60
86
  .refine((v) => Object.keys(v).length > 0, { message: 'nothing to update' });
61
87
  //# sourceMappingURL=workspaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../src/workspaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../src/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAGhF;;;;8EAI8E;AAC9E,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAGjF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACtC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC9D,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAI9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,IAAI,EAAE,2BAA2B,CAAC,OAAO,CAAC,QAAQ,CAAC;CACpD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,IAAI,EAAE,iBAAiB;CACxB,CAAC,CAAC;AAgDH,+EAA+E;AAC/E,8EAA8E;AAC9E,yEAAyE;AACzE,0EAA0E;AAC1E,gEAAgE;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;IAClC,IAAI,EAAE,2BAA2B,CAAC,OAAO,CAAC,QAAQ,CAAC;CACpD,CAAC,CAAC;AA6BH,gFAAgF;AAChF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,EAAE;KACR,IAAI,EAAE;KACN,WAAW,EAAE;KACb,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;KACrC,IAAI,CACH,CAAC;KACE,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,KAAK,CAAC,wFAAwF,EAAE,gCAAgC,CAAC,CACrI,CAAC;AACJ,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAE9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACtC,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC3C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC/C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC;IACzD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACrC;;;;;;OAMG;IACH,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC1D,0EAA0E;IAC1E,cAAc,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AASH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACtD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC1D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,wFAAwF;IACxF,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnD,cAAc,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CAC9C,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,18 +1,19 @@
1
1
  {
2
2
  "name": "@ninedeploy/schemas",
3
- "version": "0.10.5",
3
+ "version": "0.16.0",
4
4
  "description": "Shared Zod schemas and validation types for NineDeploy",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "https://github.com/NineDeploy/NineDeploy.git",
8
+ "url": "git+https://github.com/ninedeploy/ninedeploy.git",
9
9
  "directory": "packages/schemas"
10
10
  },
11
11
  "publishConfig": {
12
12
  "access": "public"
13
13
  },
14
14
  "files": [
15
- "dist"
15
+ "dist",
16
+ "src"
16
17
  ],
17
18
  "type": "module",
18
19
  "main": "./dist/index.js",
@@ -24,7 +25,7 @@
24
25
  }
25
26
  },
26
27
  "dependencies": {
27
- "zod": "^4.4.3"
28
+ "zod": "^4.6.5"
28
29
  },
29
30
  "devDependencies": {
30
31
  "typescript": "^7.0.2"