envpass-cli 0.1.6 → 0.2.7

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/schema.d.ts CHANGED
@@ -34,7 +34,6 @@ export interface paths {
34
34
  id: string;
35
35
  workspaceId: string;
36
36
  projectId: string;
37
- serviceId: string | null;
38
37
  /** @enum {string} */
39
38
  access: "read" | "write";
40
39
  } | null;
@@ -2777,21 +2776,22 @@ export interface paths {
2777
2776
  };
2778
2777
  trace?: never;
2779
2778
  };
2780
- "/api/v1/workspaces/{workspaceId}/projects/{projectId}/services": {
2779
+ "/api/v1/workspaces/{workspaceId}/tokens": {
2781
2780
  parameters: {
2782
2781
  query?: never;
2783
2782
  header?: never;
2784
2783
  path?: never;
2785
2784
  cookie?: never;
2786
2785
  };
2787
- /** List services */
2786
+ /** List service tokens */
2788
2787
  get: {
2789
2788
  parameters: {
2790
- query?: never;
2789
+ query?: {
2790
+ projectId?: string;
2791
+ };
2791
2792
  header?: never;
2792
2793
  path: {
2793
2794
  workspaceId: string;
2794
- projectId: string;
2795
2795
  };
2796
2796
  cookie?: never;
2797
2797
  };
@@ -2804,7 +2804,7 @@ export interface paths {
2804
2804
  };
2805
2805
  content: {
2806
2806
  "application/json": {
2807
- services: components["schemas"]["Service"][];
2807
+ tokens: components["schemas"]["ServiceToken"][];
2808
2808
  };
2809
2809
  };
2810
2810
  };
@@ -2865,14 +2865,13 @@ export interface paths {
2865
2865
  };
2866
2866
  };
2867
2867
  put?: never;
2868
- /** Create a service */
2868
+ /** Create a service token (the token is only returned once) */
2869
2869
  post: {
2870
2870
  parameters: {
2871
2871
  query?: never;
2872
2872
  header?: never;
2873
2873
  path: {
2874
2874
  workspaceId: string;
2875
- projectId: string;
2876
2875
  };
2877
2876
  cookie?: never;
2878
2877
  };
@@ -2880,7 +2879,12 @@ export interface paths {
2880
2879
  content: {
2881
2880
  "application/json": {
2882
2881
  name: string;
2883
- slug?: string;
2882
+ /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
2883
+ projectId: string;
2884
+ environmentIds: string[];
2885
+ /** @enum {string} */
2886
+ access: "read" | "write";
2887
+ ttlDays: 30 | 90 | 365;
2884
2888
  };
2885
2889
  };
2886
2890
  };
@@ -2893,8 +2897,9 @@ export interface paths {
2893
2897
  content: {
2894
2898
  "application/json": {
2895
2899
  id: string;
2896
- name: string;
2897
- slug: string;
2900
+ token: string;
2901
+ displayPrefix: string;
2902
+ expiresAt: string;
2898
2903
  };
2899
2904
  };
2900
2905
  };
@@ -2960,7 +2965,7 @@ export interface paths {
2960
2965
  patch?: never;
2961
2966
  trace?: never;
2962
2967
  };
2963
- "/api/v1/workspaces/{workspaceId}/projects/{projectId}/services/{serviceId}": {
2968
+ "/api/v1/workspaces/{workspaceId}/tokens/{tokenId}": {
2964
2969
  parameters: {
2965
2970
  query?: never;
2966
2971
  header?: never;
@@ -2970,17 +2975,14 @@ export interface paths {
2970
2975
  get?: never;
2971
2976
  put?: never;
2972
2977
  post?: never;
2973
- /** Delete a service and its overrides */
2978
+ /** Revoke a service token */
2974
2979
  delete: {
2975
2980
  parameters: {
2976
- query: {
2977
- confirm: string;
2978
- };
2981
+ query?: never;
2979
2982
  header?: never;
2980
2983
  path: {
2981
2984
  workspaceId: string;
2982
- projectId: string;
2983
- serviceId: string;
2985
+ tokenId: string;
2984
2986
  };
2985
2987
  cookie?: never;
2986
2988
  };
@@ -3053,25 +3055,34 @@ export interface paths {
3053
3055
  };
3054
3056
  options?: never;
3055
3057
  head?: never;
3056
- /** Rename a service */
3057
- patch: {
3058
+ patch?: never;
3059
+ trace?: never;
3060
+ };
3061
+ "/api/v1/workspaces/{workspaceId}/audit": {
3062
+ parameters: {
3063
+ query?: never;
3064
+ header?: never;
3065
+ path?: never;
3066
+ cookie?: never;
3067
+ };
3068
+ /** Read the audit log (newest first) */
3069
+ get: {
3058
3070
  parameters: {
3059
- query?: never;
3071
+ query?: {
3072
+ actorUserId?: string;
3073
+ projectId?: string;
3074
+ environmentId?: string;
3075
+ action?: string;
3076
+ cursor?: number | null;
3077
+ limit?: number;
3078
+ };
3060
3079
  header?: never;
3061
3080
  path: {
3062
3081
  workspaceId: string;
3063
- projectId: string;
3064
- serviceId: string;
3065
3082
  };
3066
3083
  cookie?: never;
3067
3084
  };
3068
- requestBody: {
3069
- content: {
3070
- "application/json": {
3071
- name: string;
3072
- };
3073
- };
3074
- };
3085
+ requestBody?: never;
3075
3086
  responses: {
3076
3087
  /** @description OK */
3077
3088
  200: {
@@ -3079,7 +3090,10 @@ export interface paths {
3079
3090
  [name: string]: unknown;
3080
3091
  };
3081
3092
  content: {
3082
- "application/json": components["schemas"]["Ok"];
3093
+ "application/json": {
3094
+ entries: components["schemas"]["AuditEntry"][];
3095
+ nextCursor: number | null;
3096
+ };
3083
3097
  };
3084
3098
  };
3085
3099
  /** @description Missing or invalid credentials */
@@ -3138,38 +3152,50 @@ export interface paths {
3138
3152
  };
3139
3153
  };
3140
3154
  };
3155
+ put?: never;
3156
+ post?: never;
3157
+ delete?: never;
3158
+ options?: never;
3159
+ head?: never;
3160
+ patch?: never;
3141
3161
  trace?: never;
3142
3162
  };
3143
- "/api/v1/workspaces/{workspaceId}/tokens": {
3163
+ "/api/v1/resolve": {
3144
3164
  parameters: {
3145
3165
  query?: never;
3146
3166
  header?: never;
3147
3167
  path?: never;
3148
3168
  cookie?: never;
3149
3169
  };
3150
- /** List service tokens */
3170
+ /**
3171
+ * Resolve the values of a project environment
3172
+ * @description Returns the environment's values with your personal overrides on top (user tokens only). Service tokens infer workspace and project. `format=dotenv|shell` returns text, ready to write to a file.
3173
+ */
3151
3174
  get: {
3152
3175
  parameters: {
3153
- query?: {
3154
- projectId?: string;
3176
+ query: {
3177
+ /** @description Workspace slug */
3178
+ workspace?: string;
3179
+ /** @description Project slug */
3180
+ project?: string;
3181
+ /** @description Environment slug */
3182
+ environment: string;
3183
+ format?: "json" | "dotenv" | "shell";
3155
3184
  };
3156
3185
  header?: never;
3157
- path: {
3158
- workspaceId: string;
3159
- };
3186
+ path?: never;
3160
3187
  cookie?: never;
3161
3188
  };
3162
3189
  requestBody?: never;
3163
3190
  responses: {
3164
- /** @description OK */
3191
+ /** @description Resolved values */
3165
3192
  200: {
3166
3193
  headers: {
3167
3194
  [name: string]: unknown;
3168
3195
  };
3169
3196
  content: {
3170
- "application/json": {
3171
- tokens: components["schemas"]["ServiceToken"][];
3172
- };
3197
+ "application/json": components["schemas"]["Resolved"];
3198
+ "text/plain": string;
3173
3199
  };
3174
3200
  };
3175
3201
  /** @description Missing or invalid credentials */
@@ -3229,44 +3255,42 @@ export interface paths {
3229
3255
  };
3230
3256
  };
3231
3257
  put?: never;
3232
- /** Create a service token (the token is only returned once) */
3233
- post: {
3258
+ post?: never;
3259
+ delete?: never;
3260
+ options?: never;
3261
+ head?: never;
3262
+ patch?: never;
3263
+ trace?: never;
3264
+ };
3265
+ "/api/v1/workspaces/{workspaceId}/projects/{projectId}/secrets": {
3266
+ parameters: {
3267
+ query?: never;
3268
+ header?: never;
3269
+ path?: never;
3270
+ cookie?: never;
3271
+ };
3272
+ /** List keys (no values) with their inheritance source */
3273
+ get: {
3234
3274
  parameters: {
3235
- query?: never;
3275
+ query: {
3276
+ environmentId: string;
3277
+ };
3236
3278
  header?: never;
3237
3279
  path: {
3238
3280
  workspaceId: string;
3281
+ projectId: string;
3239
3282
  };
3240
3283
  cookie?: never;
3241
3284
  };
3242
- requestBody: {
3243
- content: {
3244
- "application/json": {
3245
- name: string;
3246
- /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
3247
- projectId: string;
3248
- /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
3249
- serviceId?: string | null;
3250
- environmentIds: string[];
3251
- /** @enum {string} */
3252
- access: "read" | "write";
3253
- ttlDays: 30 | 90 | 365;
3254
- };
3255
- };
3256
- };
3285
+ requestBody?: never;
3257
3286
  responses: {
3258
- /** @description Created */
3259
- 201: {
3287
+ /** @description OK */
3288
+ 200: {
3260
3289
  headers: {
3261
3290
  [name: string]: unknown;
3262
3291
  };
3263
3292
  content: {
3264
- "application/json": {
3265
- id: string;
3266
- token: string;
3267
- displayPrefix: string;
3268
- expiresAt: string;
3269
- };
3293
+ "application/json": components["schemas"]["SecretList"];
3270
3294
  };
3271
3295
  };
3272
3296
  /** @description Missing or invalid credentials */
@@ -3325,34 +3349,25 @@ export interface paths {
3325
3349
  };
3326
3350
  };
3327
3351
  };
3328
- delete?: never;
3329
- options?: never;
3330
- head?: never;
3331
- patch?: never;
3332
- trace?: never;
3333
- };
3334
- "/api/v1/workspaces/{workspaceId}/tokens/{tokenId}": {
3335
- parameters: {
3336
- query?: never;
3337
- header?: never;
3338
- path?: never;
3339
- cookie?: never;
3340
- };
3341
- get?: never;
3342
- put?: never;
3343
- post?: never;
3344
- /** Revoke a service token */
3345
- delete: {
3352
+ /**
3353
+ * Create or update keys in one layer
3354
+ * @description Set personal=true to write your own overrides (non-production environments that allow it).
3355
+ */
3356
+ put: {
3346
3357
  parameters: {
3347
3358
  query?: never;
3348
3359
  header?: never;
3349
3360
  path: {
3350
3361
  workspaceId: string;
3351
- tokenId: string;
3362
+ projectId: string;
3352
3363
  };
3353
3364
  cookie?: never;
3354
3365
  };
3355
- requestBody?: never;
3366
+ requestBody: {
3367
+ content: {
3368
+ "application/json": components["schemas"]["UpsertSecrets"];
3369
+ };
3370
+ };
3356
3371
  responses: {
3357
3372
  /** @description OK */
3358
3373
  200: {
@@ -3360,7 +3375,7 @@ export interface paths {
3360
3375
  [name: string]: unknown;
3361
3376
  };
3362
3377
  content: {
3363
- "application/json": components["schemas"]["Ok"];
3378
+ "application/json": components["schemas"]["UpsertResult"];
3364
3379
  };
3365
3380
  };
3366
3381
  /** @description Missing or invalid credentials */
@@ -3419,32 +3434,30 @@ export interface paths {
3419
3434
  };
3420
3435
  };
3421
3436
  };
3437
+ post?: never;
3438
+ delete?: never;
3422
3439
  options?: never;
3423
3440
  head?: never;
3424
3441
  patch?: never;
3425
3442
  trace?: never;
3426
3443
  };
3427
- "/api/v1/workspaces/{workspaceId}/audit": {
3444
+ "/api/v1/workspaces/{workspaceId}/secrets/{secretId}/reveal": {
3428
3445
  parameters: {
3429
3446
  query?: never;
3430
3447
  header?: never;
3431
3448
  path?: never;
3432
3449
  cookie?: never;
3433
3450
  };
3434
- /** Read the audit log (newest first) */
3435
- get: {
3451
+ get?: never;
3452
+ put?: never;
3453
+ /** Reveal one value (audited) */
3454
+ post: {
3436
3455
  parameters: {
3437
- query?: {
3438
- actorUserId?: string;
3439
- projectId?: string;
3440
- environmentId?: string;
3441
- action?: string;
3442
- cursor?: number | null;
3443
- limit?: number;
3444
- };
3456
+ query?: never;
3445
3457
  header?: never;
3446
3458
  path: {
3447
3459
  workspaceId: string;
3460
+ secretId: string;
3448
3461
  };
3449
3462
  cookie?: never;
3450
3463
  };
@@ -3457,8 +3470,8 @@ export interface paths {
3457
3470
  };
3458
3471
  content: {
3459
3472
  "application/json": {
3460
- entries: components["schemas"]["AuditEntry"][];
3461
- nextCursor: number | null;
3473
+ key: string;
3474
+ value: string;
3462
3475
  };
3463
3476
  };
3464
3477
  };
@@ -3518,52 +3531,42 @@ export interface paths {
3518
3531
  };
3519
3532
  };
3520
3533
  };
3521
- put?: never;
3522
- post?: never;
3523
3534
  delete?: never;
3524
3535
  options?: never;
3525
3536
  head?: never;
3526
3537
  patch?: never;
3527
3538
  trace?: never;
3528
3539
  };
3529
- "/api/v1/resolve": {
3540
+ "/api/v1/workspaces/{workspaceId}/secrets/{secretId}": {
3530
3541
  parameters: {
3531
3542
  query?: never;
3532
3543
  header?: never;
3533
3544
  path?: never;
3534
3545
  cookie?: never;
3535
3546
  };
3536
- /**
3537
- * Resolve the merged values for a service in an environment
3538
- * @description Merges Shared, then the service's overrides, then your personal overrides (user tokens only). Service tokens infer workspace and project. `format=dotenv|shell` returns text, ready to write to a file.
3539
- */
3540
- get: {
3547
+ get?: never;
3548
+ put?: never;
3549
+ post?: never;
3550
+ /** Delete a key (restorable for 30 days) */
3551
+ delete: {
3541
3552
  parameters: {
3542
- query: {
3543
- /** @description Workspace slug */
3544
- workspace?: string;
3545
- /** @description Project slug */
3546
- project?: string;
3547
- /** @description Environment slug */
3548
- environment: string;
3549
- /** @description Service slug, or "shared" */
3550
- service?: string;
3551
- format?: "json" | "dotenv" | "shell";
3552
- };
3553
+ query?: never;
3553
3554
  header?: never;
3554
- path?: never;
3555
+ path: {
3556
+ workspaceId: string;
3557
+ secretId: string;
3558
+ };
3555
3559
  cookie?: never;
3556
3560
  };
3557
3561
  requestBody?: never;
3558
3562
  responses: {
3559
- /** @description Resolved values */
3563
+ /** @description OK */
3560
3564
  200: {
3561
3565
  headers: {
3562
3566
  [name: string]: unknown;
3563
3567
  };
3564
3568
  content: {
3565
- "application/json": components["schemas"]["Resolved"];
3566
- "text/plain": string;
3569
+ "application/json": components["schemas"]["Ok"];
3567
3570
  };
3568
3571
  };
3569
3572
  /** @description Missing or invalid credentials */
@@ -3622,36 +3625,26 @@ export interface paths {
3622
3625
  };
3623
3626
  };
3624
3627
  };
3625
- put?: never;
3626
- post?: never;
3627
- delete?: never;
3628
3628
  options?: never;
3629
3629
  head?: never;
3630
- patch?: never;
3631
- trace?: never;
3632
- };
3633
- "/api/v1/workspaces/{workspaceId}/projects/{projectId}/secrets": {
3634
- parameters: {
3635
- query?: never;
3636
- header?: never;
3637
- path?: never;
3638
- cookie?: never;
3639
- };
3640
- /** List keys (no values) with their inheritance source */
3641
- get: {
3630
+ /** Rename a key */
3631
+ patch: {
3642
3632
  parameters: {
3643
- query: {
3644
- environmentId: string;
3645
- serviceId?: string;
3646
- };
3633
+ query?: never;
3647
3634
  header?: never;
3648
3635
  path: {
3649
3636
  workspaceId: string;
3650
- projectId: string;
3637
+ secretId: string;
3651
3638
  };
3652
3639
  cookie?: never;
3653
3640
  };
3654
- requestBody?: never;
3641
+ requestBody: {
3642
+ content: {
3643
+ "application/json": {
3644
+ key: string;
3645
+ };
3646
+ };
3647
+ };
3655
3648
  responses: {
3656
3649
  /** @description OK */
3657
3650
  200: {
@@ -3659,7 +3652,7 @@ export interface paths {
3659
3652
  [name: string]: unknown;
3660
3653
  };
3661
3654
  content: {
3662
- "application/json": components["schemas"]["SecretList"];
3655
+ "application/json": components["schemas"]["Ok"];
3663
3656
  };
3664
3657
  };
3665
3658
  /** @description Missing or invalid credentials */
@@ -3718,25 +3711,29 @@ export interface paths {
3718
3711
  };
3719
3712
  };
3720
3713
  };
3721
- /**
3722
- * Create or update keys in one layer
3723
- * @description Omit serviceId to write the Shared layer. Set personal=true to write your own overrides (non-production environments that allow it).
3724
- */
3725
- put: {
3714
+ trace?: never;
3715
+ };
3716
+ "/api/v1/workspaces/{workspaceId}/secrets/{secretId}/restore": {
3717
+ parameters: {
3718
+ query?: never;
3719
+ header?: never;
3720
+ path?: never;
3721
+ cookie?: never;
3722
+ };
3723
+ get?: never;
3724
+ put?: never;
3725
+ /** Restore a deleted key */
3726
+ post: {
3726
3727
  parameters: {
3727
3728
  query?: never;
3728
3729
  header?: never;
3729
3730
  path: {
3730
3731
  workspaceId: string;
3731
- projectId: string;
3732
+ secretId: string;
3732
3733
  };
3733
3734
  cookie?: never;
3734
3735
  };
3735
- requestBody: {
3736
- content: {
3737
- "application/json": components["schemas"]["UpsertSecrets"];
3738
- };
3739
- };
3736
+ requestBody?: never;
3740
3737
  responses: {
3741
3738
  /** @description OK */
3742
3739
  200: {
@@ -3744,7 +3741,7 @@ export interface paths {
3744
3741
  [name: string]: unknown;
3745
3742
  };
3746
3743
  content: {
3747
- "application/json": components["schemas"]["UpsertResult"];
3744
+ "application/json": components["schemas"]["Ok"];
3748
3745
  };
3749
3746
  };
3750
3747
  /** @description Missing or invalid credentials */
@@ -3803,24 +3800,21 @@ export interface paths {
3803
3800
  };
3804
3801
  };
3805
3802
  };
3806
- post?: never;
3807
3803
  delete?: never;
3808
3804
  options?: never;
3809
3805
  head?: never;
3810
3806
  patch?: never;
3811
3807
  trace?: never;
3812
3808
  };
3813
- "/api/v1/workspaces/{workspaceId}/secrets/{secretId}/reveal": {
3809
+ "/api/v1/workspaces/{workspaceId}/secrets/{secretId}/versions": {
3814
3810
  parameters: {
3815
3811
  query?: never;
3816
3812
  header?: never;
3817
3813
  path?: never;
3818
3814
  cookie?: never;
3819
3815
  };
3820
- get?: never;
3821
- put?: never;
3822
- /** Reveal one value (audited) */
3823
- post: {
3816
+ /** Version history (no values) */
3817
+ get: {
3824
3818
  parameters: {
3825
3819
  query?: never;
3826
3820
  header?: never;
@@ -3838,10 +3832,7 @@ export interface paths {
3838
3832
  [name: string]: unknown;
3839
3833
  };
3840
3834
  content: {
3841
- "application/json": {
3842
- key: string;
3843
- value: string;
3844
- };
3835
+ "application/json": components["schemas"]["VersionList"];
3845
3836
  };
3846
3837
  };
3847
3838
  /** @description Missing or invalid credentials */
@@ -3900,13 +3891,15 @@ export interface paths {
3900
3891
  };
3901
3892
  };
3902
3893
  };
3894
+ put?: never;
3895
+ post?: never;
3903
3896
  delete?: never;
3904
3897
  options?: never;
3905
3898
  head?: never;
3906
3899
  patch?: never;
3907
3900
  trace?: never;
3908
3901
  };
3909
- "/api/v1/workspaces/{workspaceId}/secrets/{secretId}": {
3902
+ "/api/v1/workspaces/{workspaceId}/secrets/{secretId}/versions/{versionId}/reveal": {
3910
3903
  parameters: {
3911
3904
  query?: never;
3912
3905
  header?: never;
@@ -3915,15 +3908,15 @@ export interface paths {
3915
3908
  };
3916
3909
  get?: never;
3917
3910
  put?: never;
3918
- post?: never;
3919
- /** Delete a key (restorable for 30 days) */
3920
- delete: {
3911
+ /** Reveal an old version (audited) */
3912
+ post: {
3921
3913
  parameters: {
3922
3914
  query?: never;
3923
3915
  header?: never;
3924
3916
  path: {
3925
3917
  workspaceId: string;
3926
3918
  secretId: string;
3919
+ versionId: string;
3927
3920
  };
3928
3921
  cookie?: never;
3929
3922
  };
@@ -3935,7 +3928,9 @@ export interface paths {
3935
3928
  [name: string]: unknown;
3936
3929
  };
3937
3930
  content: {
3938
- "application/json": components["schemas"]["Ok"];
3931
+ "application/json": {
3932
+ value: string;
3933
+ };
3939
3934
  };
3940
3935
  };
3941
3936
  /** @description Missing or invalid credentials */
@@ -3994,26 +3989,34 @@ export interface paths {
3994
3989
  };
3995
3990
  };
3996
3991
  };
3992
+ delete?: never;
3997
3993
  options?: never;
3998
3994
  head?: never;
3999
- /** Rename a key */
4000
- patch: {
3995
+ patch?: never;
3996
+ trace?: never;
3997
+ };
3998
+ "/api/v1/workspaces/{workspaceId}/secrets/{secretId}/versions/{versionId}/restore": {
3999
+ parameters: {
4000
+ query?: never;
4001
+ header?: never;
4002
+ path?: never;
4003
+ cookie?: never;
4004
+ };
4005
+ get?: never;
4006
+ put?: never;
4007
+ /** Roll back to an old version (adds a new version) */
4008
+ post: {
4001
4009
  parameters: {
4002
4010
  query?: never;
4003
4011
  header?: never;
4004
4012
  path: {
4005
4013
  workspaceId: string;
4006
4014
  secretId: string;
4015
+ versionId: string;
4007
4016
  };
4008
4017
  cookie?: never;
4009
4018
  };
4010
- requestBody: {
4011
- content: {
4012
- "application/json": {
4013
- key: string;
4014
- };
4015
- };
4016
- };
4019
+ requestBody?: never;
4017
4020
  responses: {
4018
4021
  /** @description OK */
4019
4022
  200: {
@@ -4080,9 +4083,13 @@ export interface paths {
4080
4083
  };
4081
4084
  };
4082
4085
  };
4086
+ delete?: never;
4087
+ options?: never;
4088
+ head?: never;
4089
+ patch?: never;
4083
4090
  trace?: never;
4084
4091
  };
4085
- "/api/v1/workspaces/{workspaceId}/secrets/{secretId}/restore": {
4092
+ "/api/v1/workspaces/{workspaceId}/projects/{projectId}/import": {
4086
4093
  parameters: {
4087
4094
  query?: never;
4088
4095
  header?: never;
@@ -4091,18 +4098,33 @@ export interface paths {
4091
4098
  };
4092
4099
  get?: never;
4093
4100
  put?: never;
4094
- /** Restore a deleted key */
4101
+ /** Import a .env file into one layer */
4095
4102
  post: {
4096
4103
  parameters: {
4097
4104
  query?: never;
4098
4105
  header?: never;
4099
4106
  path: {
4100
4107
  workspaceId: string;
4101
- secretId: string;
4108
+ projectId: string;
4102
4109
  };
4103
4110
  cookie?: never;
4104
4111
  };
4105
- requestBody?: never;
4112
+ requestBody: {
4113
+ content: {
4114
+ "application/json": {
4115
+ /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
4116
+ environmentId: string;
4117
+ content: string;
4118
+ /**
4119
+ * @default skip
4120
+ * @enum {string}
4121
+ */
4122
+ onConflict?: "skip" | "overwrite";
4123
+ /** @default false */
4124
+ dryRun?: boolean;
4125
+ };
4126
+ };
4127
+ };
4106
4128
  responses: {
4107
4129
  /** @description OK */
4108
4130
  200: {
@@ -4110,7 +4132,21 @@ export interface paths {
4110
4132
  [name: string]: unknown;
4111
4133
  };
4112
4134
  content: {
4113
- "application/json": components["schemas"]["Ok"];
4135
+ "application/json": {
4136
+ errors: {
4137
+ line: number;
4138
+ message: string;
4139
+ }[];
4140
+ entries: {
4141
+ key: string;
4142
+ /** @enum {string} */
4143
+ status: "new" | "changed" | "same";
4144
+ bytes: number;
4145
+ }[];
4146
+ result: components["schemas"]["UpsertResult"] & ({
4147
+ skipped: string[];
4148
+ } | null);
4149
+ };
4114
4150
  };
4115
4151
  };
4116
4152
  /** @description Missing or invalid credentials */
@@ -4175,21 +4211,24 @@ export interface paths {
4175
4211
  patch?: never;
4176
4212
  trace?: never;
4177
4213
  };
4178
- "/api/v1/workspaces/{workspaceId}/secrets/{secretId}/versions": {
4214
+ "/api/v1/workspaces/{workspaceId}/projects/{projectId}/compare": {
4179
4215
  parameters: {
4180
4216
  query?: never;
4181
4217
  header?: never;
4182
4218
  path?: never;
4183
4219
  cookie?: never;
4184
4220
  };
4185
- /** Version history (no values) */
4221
+ /** Compare one layer across two environments (no values) */
4186
4222
  get: {
4187
4223
  parameters: {
4188
- query?: never;
4224
+ query: {
4225
+ from: string;
4226
+ to: string;
4227
+ };
4189
4228
  header?: never;
4190
4229
  path: {
4191
4230
  workspaceId: string;
4192
- secretId: string;
4231
+ projectId: string;
4193
4232
  };
4194
4233
  cookie?: never;
4195
4234
  };
@@ -4201,7 +4240,13 @@ export interface paths {
4201
4240
  [name: string]: unknown;
4202
4241
  };
4203
4242
  content: {
4204
- "application/json": components["schemas"]["VersionList"];
4243
+ "application/json": {
4244
+ rows: {
4245
+ key: string;
4246
+ /** @enum {string} */
4247
+ status: "only_from" | "only_to" | "same" | "different";
4248
+ }[];
4249
+ };
4205
4250
  };
4206
4251
  };
4207
4252
  /** @description Missing or invalid credentials */
@@ -4268,7 +4313,7 @@ export interface paths {
4268
4313
  patch?: never;
4269
4314
  trace?: never;
4270
4315
  };
4271
- "/api/v1/workspaces/{workspaceId}/secrets/{secretId}/versions/{versionId}/reveal": {
4316
+ "/api/v1/workspaces/{workspaceId}/projects/{projectId}/promote": {
4272
4317
  parameters: {
4273
4318
  query?: never;
4274
4319
  header?: never;
@@ -4277,19 +4322,28 @@ export interface paths {
4277
4322
  };
4278
4323
  get?: never;
4279
4324
  put?: never;
4280
- /** Reveal an old version (audited) */
4325
+ /** Copy selected keys from one environment to another */
4281
4326
  post: {
4282
4327
  parameters: {
4283
4328
  query?: never;
4284
4329
  header?: never;
4285
4330
  path: {
4286
4331
  workspaceId: string;
4287
- secretId: string;
4288
- versionId: string;
4332
+ projectId: string;
4289
4333
  };
4290
4334
  cookie?: never;
4291
4335
  };
4292
- requestBody?: never;
4336
+ requestBody: {
4337
+ content: {
4338
+ "application/json": {
4339
+ /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
4340
+ from: string;
4341
+ /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
4342
+ to: string;
4343
+ keys: string[];
4344
+ };
4345
+ };
4346
+ };
4293
4347
  responses: {
4294
4348
  /** @description OK */
4295
4349
  200: {
@@ -4297,9 +4351,7 @@ export interface paths {
4297
4351
  [name: string]: unknown;
4298
4352
  };
4299
4353
  content: {
4300
- "application/json": {
4301
- value: string;
4302
- };
4354
+ "application/json": components["schemas"]["UpsertResult"];
4303
4355
  };
4304
4356
  };
4305
4357
  /** @description Missing or invalid credentials */
@@ -4364,7 +4416,7 @@ export interface paths {
4364
4416
  patch?: never;
4365
4417
  trace?: never;
4366
4418
  };
4367
- "/api/v1/workspaces/{workspaceId}/secrets/{secretId}/versions/{versionId}/restore": {
4419
+ "/api/v1/shares": {
4368
4420
  parameters: {
4369
4421
  query?: never;
4370
4422
  header?: never;
@@ -4373,27 +4425,53 @@ export interface paths {
4373
4425
  };
4374
4426
  get?: never;
4375
4427
  put?: never;
4376
- /** Roll back to an old version (adds a new version) */
4428
+ /**
4429
+ * Store an encrypted share link
4430
+ * @description Encrypt in the client with AES-256-GCM and keep the key in the URL fragment. The server only stores ciphertext.
4431
+ */
4377
4432
  post: {
4378
4433
  parameters: {
4379
4434
  query?: never;
4380
4435
  header?: never;
4381
- path: {
4382
- workspaceId: string;
4383
- secretId: string;
4384
- versionId: string;
4385
- };
4436
+ path?: never;
4386
4437
  cookie?: never;
4387
4438
  };
4388
- requestBody?: never;
4439
+ requestBody: {
4440
+ content: {
4441
+ "application/json": {
4442
+ ciphertext: string;
4443
+ iv: string;
4444
+ passphraseSalt?: string | null;
4445
+ /**
4446
+ * @default 1d
4447
+ * @enum {string}
4448
+ */
4449
+ ttl?: "1h" | "1d" | "7d";
4450
+ /** @default 1 */
4451
+ maxViews?: number;
4452
+ source?: {
4453
+ /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
4454
+ workspaceId: string;
4455
+ /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
4456
+ projectId: string;
4457
+ /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
4458
+ environmentId: string;
4459
+ keys: string[];
4460
+ } | null;
4461
+ };
4462
+ };
4463
+ };
4389
4464
  responses: {
4390
- /** @description OK */
4391
- 200: {
4465
+ /** @description Created */
4466
+ 201: {
4392
4467
  headers: {
4393
4468
  [name: string]: unknown;
4394
4469
  };
4395
4470
  content: {
4396
- "application/json": components["schemas"]["Ok"];
4471
+ "application/json": {
4472
+ id: string;
4473
+ expiresAt: string;
4474
+ };
4397
4475
  };
4398
4476
  };
4399
4477
  /** @description Missing or invalid credentials */
@@ -4458,44 +4536,24 @@ export interface paths {
4458
4536
  patch?: never;
4459
4537
  trace?: never;
4460
4538
  };
4461
- "/api/v1/workspaces/{workspaceId}/projects/{projectId}/import": {
4539
+ "/api/v1/shares/{shareId}": {
4462
4540
  parameters: {
4463
4541
  query?: never;
4464
4542
  header?: never;
4465
4543
  path?: never;
4466
4544
  cookie?: never;
4467
4545
  };
4468
- get?: never;
4469
- put?: never;
4470
- /** Import a .env file into one layer */
4471
- post: {
4546
+ /** Check a share link without using up a view */
4547
+ get: {
4472
4548
  parameters: {
4473
4549
  query?: never;
4474
4550
  header?: never;
4475
4551
  path: {
4476
- workspaceId: string;
4477
- projectId: string;
4552
+ shareId: string;
4478
4553
  };
4479
4554
  cookie?: never;
4480
4555
  };
4481
- requestBody: {
4482
- content: {
4483
- "application/json": {
4484
- /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
4485
- environmentId: string;
4486
- /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
4487
- serviceId?: string | null;
4488
- content: string;
4489
- /**
4490
- * @default skip
4491
- * @enum {string}
4492
- */
4493
- onConflict?: "skip" | "overwrite";
4494
- /** @default false */
4495
- dryRun?: boolean;
4496
- };
4497
- };
4498
- };
4556
+ requestBody?: never;
4499
4557
  responses: {
4500
4558
  /** @description OK */
4501
4559
  200: {
@@ -4504,19 +4562,1383 @@ export interface paths {
4504
4562
  };
4505
4563
  content: {
4506
4564
  "application/json": {
4507
- errors: {
4508
- line: number;
4509
- message: string;
4510
- }[];
4511
- entries: {
4512
- key: string;
4513
- /** @enum {string} */
4514
- status: "new" | "changed" | "same";
4515
- bytes: number;
4516
- }[];
4517
- result: components["schemas"]["UpsertResult"] & ({
4518
- skipped: string[];
4519
- } | null);
4565
+ expiresAt: string;
4566
+ viewsLeft: number;
4567
+ hasPassphrase: boolean;
4568
+ };
4569
+ };
4570
+ };
4571
+ /** @description Missing or invalid credentials */
4572
+ 401: {
4573
+ headers: {
4574
+ [name: string]: unknown;
4575
+ };
4576
+ content: {
4577
+ "application/json": components["schemas"]["Error"];
4578
+ };
4579
+ };
4580
+ /** @description Not allowed, or a limit was reached */
4581
+ 403: {
4582
+ headers: {
4583
+ [name: string]: unknown;
4584
+ };
4585
+ content: {
4586
+ "application/json": components["schemas"]["Error"];
4587
+ };
4588
+ };
4589
+ /** @description Not found */
4590
+ 404: {
4591
+ headers: {
4592
+ [name: string]: unknown;
4593
+ };
4594
+ content: {
4595
+ "application/json": components["schemas"]["Error"];
4596
+ };
4597
+ };
4598
+ /** @description Conflict */
4599
+ 409: {
4600
+ headers: {
4601
+ [name: string]: unknown;
4602
+ };
4603
+ content: {
4604
+ "application/json": components["schemas"]["Error"];
4605
+ };
4606
+ };
4607
+ /** @description Invalid input */
4608
+ 422: {
4609
+ headers: {
4610
+ [name: string]: unknown;
4611
+ };
4612
+ content: {
4613
+ "application/json": components["schemas"]["Error"];
4614
+ };
4615
+ };
4616
+ /** @description Rate limited */
4617
+ 429: {
4618
+ headers: {
4619
+ [name: string]: unknown;
4620
+ };
4621
+ content: {
4622
+ "application/json": components["schemas"]["Error"];
4623
+ };
4624
+ };
4625
+ };
4626
+ };
4627
+ put?: never;
4628
+ post?: never;
4629
+ delete?: never;
4630
+ options?: never;
4631
+ head?: never;
4632
+ patch?: never;
4633
+ trace?: never;
4634
+ };
4635
+ "/api/v1/shares/{shareId}/open": {
4636
+ parameters: {
4637
+ query?: never;
4638
+ header?: never;
4639
+ path?: never;
4640
+ cookie?: never;
4641
+ };
4642
+ get?: never;
4643
+ put?: never;
4644
+ /** Open a share link (uses one view, deletes it after the last) */
4645
+ post: {
4646
+ parameters: {
4647
+ query?: never;
4648
+ header?: never;
4649
+ path: {
4650
+ shareId: string;
4651
+ };
4652
+ cookie?: never;
4653
+ };
4654
+ requestBody?: never;
4655
+ responses: {
4656
+ /** @description OK */
4657
+ 200: {
4658
+ headers: {
4659
+ [name: string]: unknown;
4660
+ };
4661
+ content: {
4662
+ "application/json": {
4663
+ ciphertext: string;
4664
+ iv: string;
4665
+ passphraseSalt: string | null;
4666
+ viewsLeft: number;
4667
+ };
4668
+ };
4669
+ };
4670
+ /** @description Missing or invalid credentials */
4671
+ 401: {
4672
+ headers: {
4673
+ [name: string]: unknown;
4674
+ };
4675
+ content: {
4676
+ "application/json": components["schemas"]["Error"];
4677
+ };
4678
+ };
4679
+ /** @description Not allowed, or a limit was reached */
4680
+ 403: {
4681
+ headers: {
4682
+ [name: string]: unknown;
4683
+ };
4684
+ content: {
4685
+ "application/json": components["schemas"]["Error"];
4686
+ };
4687
+ };
4688
+ /** @description Not found */
4689
+ 404: {
4690
+ headers: {
4691
+ [name: string]: unknown;
4692
+ };
4693
+ content: {
4694
+ "application/json": components["schemas"]["Error"];
4695
+ };
4696
+ };
4697
+ /** @description Conflict */
4698
+ 409: {
4699
+ headers: {
4700
+ [name: string]: unknown;
4701
+ };
4702
+ content: {
4703
+ "application/json": components["schemas"]["Error"];
4704
+ };
4705
+ };
4706
+ /** @description Invalid input */
4707
+ 422: {
4708
+ headers: {
4709
+ [name: string]: unknown;
4710
+ };
4711
+ content: {
4712
+ "application/json": components["schemas"]["Error"];
4713
+ };
4714
+ };
4715
+ /** @description Rate limited */
4716
+ 429: {
4717
+ headers: {
4718
+ [name: string]: unknown;
4719
+ };
4720
+ content: {
4721
+ "application/json": components["schemas"]["Error"];
4722
+ };
4723
+ };
4724
+ };
4725
+ };
4726
+ delete?: never;
4727
+ options?: never;
4728
+ head?: never;
4729
+ patch?: never;
4730
+ trace?: never;
4731
+ };
4732
+ "/api/v1/workspaces/{workspaceId}/webhooks": {
4733
+ parameters: {
4734
+ query?: never;
4735
+ header?: never;
4736
+ path?: never;
4737
+ cookie?: never;
4738
+ };
4739
+ /** List webhooks */
4740
+ get: {
4741
+ parameters: {
4742
+ query?: never;
4743
+ header?: never;
4744
+ path: {
4745
+ workspaceId: string;
4746
+ };
4747
+ cookie?: never;
4748
+ };
4749
+ requestBody?: never;
4750
+ responses: {
4751
+ /** @description OK */
4752
+ 200: {
4753
+ headers: {
4754
+ [name: string]: unknown;
4755
+ };
4756
+ content: {
4757
+ "application/json": {
4758
+ webhooks: components["schemas"]["Webhook"][];
4759
+ };
4760
+ };
4761
+ };
4762
+ /** @description Missing or invalid credentials */
4763
+ 401: {
4764
+ headers: {
4765
+ [name: string]: unknown;
4766
+ };
4767
+ content: {
4768
+ "application/json": components["schemas"]["Error"];
4769
+ };
4770
+ };
4771
+ /** @description Not allowed, or a limit was reached */
4772
+ 403: {
4773
+ headers: {
4774
+ [name: string]: unknown;
4775
+ };
4776
+ content: {
4777
+ "application/json": components["schemas"]["Error"];
4778
+ };
4779
+ };
4780
+ /** @description Not found */
4781
+ 404: {
4782
+ headers: {
4783
+ [name: string]: unknown;
4784
+ };
4785
+ content: {
4786
+ "application/json": components["schemas"]["Error"];
4787
+ };
4788
+ };
4789
+ /** @description Conflict */
4790
+ 409: {
4791
+ headers: {
4792
+ [name: string]: unknown;
4793
+ };
4794
+ content: {
4795
+ "application/json": components["schemas"]["Error"];
4796
+ };
4797
+ };
4798
+ /** @description Invalid input */
4799
+ 422: {
4800
+ headers: {
4801
+ [name: string]: unknown;
4802
+ };
4803
+ content: {
4804
+ "application/json": components["schemas"]["Error"];
4805
+ };
4806
+ };
4807
+ /** @description Rate limited */
4808
+ 429: {
4809
+ headers: {
4810
+ [name: string]: unknown;
4811
+ };
4812
+ content: {
4813
+ "application/json": components["schemas"]["Error"];
4814
+ };
4815
+ };
4816
+ };
4817
+ };
4818
+ put?: never;
4819
+ /**
4820
+ * Register a webhook (the signing secret is only returned once)
4821
+ * @description envpass POSTs JSON to the URL for each matching event. Verify the `envpass-signature` header: `t=<unix seconds>,v1=<hex HMAC-SHA256 of "<t>.<raw body>" with the secret>`. Payloads never contain secret values. Use format `slack` for Slack incoming webhooks.
4822
+ */
4823
+ post: {
4824
+ parameters: {
4825
+ query?: never;
4826
+ header?: never;
4827
+ path: {
4828
+ workspaceId: string;
4829
+ };
4830
+ cookie?: never;
4831
+ };
4832
+ requestBody: {
4833
+ content: {
4834
+ "application/json": components["schemas"]["WebhookInput"];
4835
+ };
4836
+ };
4837
+ responses: {
4838
+ /** @description Created */
4839
+ 201: {
4840
+ headers: {
4841
+ [name: string]: unknown;
4842
+ };
4843
+ content: {
4844
+ "application/json": {
4845
+ webhook: components["schemas"]["Webhook"];
4846
+ secret: string;
4847
+ };
4848
+ };
4849
+ };
4850
+ /** @description Missing or invalid credentials */
4851
+ 401: {
4852
+ headers: {
4853
+ [name: string]: unknown;
4854
+ };
4855
+ content: {
4856
+ "application/json": components["schemas"]["Error"];
4857
+ };
4858
+ };
4859
+ /** @description Not allowed, or a limit was reached */
4860
+ 403: {
4861
+ headers: {
4862
+ [name: string]: unknown;
4863
+ };
4864
+ content: {
4865
+ "application/json": components["schemas"]["Error"];
4866
+ };
4867
+ };
4868
+ /** @description Not found */
4869
+ 404: {
4870
+ headers: {
4871
+ [name: string]: unknown;
4872
+ };
4873
+ content: {
4874
+ "application/json": components["schemas"]["Error"];
4875
+ };
4876
+ };
4877
+ /** @description Conflict */
4878
+ 409: {
4879
+ headers: {
4880
+ [name: string]: unknown;
4881
+ };
4882
+ content: {
4883
+ "application/json": components["schemas"]["Error"];
4884
+ };
4885
+ };
4886
+ /** @description Invalid input */
4887
+ 422: {
4888
+ headers: {
4889
+ [name: string]: unknown;
4890
+ };
4891
+ content: {
4892
+ "application/json": components["schemas"]["Error"];
4893
+ };
4894
+ };
4895
+ /** @description Rate limited */
4896
+ 429: {
4897
+ headers: {
4898
+ [name: string]: unknown;
4899
+ };
4900
+ content: {
4901
+ "application/json": components["schemas"]["Error"];
4902
+ };
4903
+ };
4904
+ };
4905
+ };
4906
+ delete?: never;
4907
+ options?: never;
4908
+ head?: never;
4909
+ patch?: never;
4910
+ trace?: never;
4911
+ };
4912
+ "/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}": {
4913
+ parameters: {
4914
+ query?: never;
4915
+ header?: never;
4916
+ path?: never;
4917
+ cookie?: never;
4918
+ };
4919
+ /** Get a webhook */
4920
+ get: {
4921
+ parameters: {
4922
+ query?: never;
4923
+ header?: never;
4924
+ path: {
4925
+ workspaceId: string;
4926
+ webhookId: string;
4927
+ };
4928
+ cookie?: never;
4929
+ };
4930
+ requestBody?: never;
4931
+ responses: {
4932
+ /** @description OK */
4933
+ 200: {
4934
+ headers: {
4935
+ [name: string]: unknown;
4936
+ };
4937
+ content: {
4938
+ "application/json": components["schemas"]["Webhook"];
4939
+ };
4940
+ };
4941
+ /** @description Missing or invalid credentials */
4942
+ 401: {
4943
+ headers: {
4944
+ [name: string]: unknown;
4945
+ };
4946
+ content: {
4947
+ "application/json": components["schemas"]["Error"];
4948
+ };
4949
+ };
4950
+ /** @description Not allowed, or a limit was reached */
4951
+ 403: {
4952
+ headers: {
4953
+ [name: string]: unknown;
4954
+ };
4955
+ content: {
4956
+ "application/json": components["schemas"]["Error"];
4957
+ };
4958
+ };
4959
+ /** @description Not found */
4960
+ 404: {
4961
+ headers: {
4962
+ [name: string]: unknown;
4963
+ };
4964
+ content: {
4965
+ "application/json": components["schemas"]["Error"];
4966
+ };
4967
+ };
4968
+ /** @description Conflict */
4969
+ 409: {
4970
+ headers: {
4971
+ [name: string]: unknown;
4972
+ };
4973
+ content: {
4974
+ "application/json": components["schemas"]["Error"];
4975
+ };
4976
+ };
4977
+ /** @description Invalid input */
4978
+ 422: {
4979
+ headers: {
4980
+ [name: string]: unknown;
4981
+ };
4982
+ content: {
4983
+ "application/json": components["schemas"]["Error"];
4984
+ };
4985
+ };
4986
+ /** @description Rate limited */
4987
+ 429: {
4988
+ headers: {
4989
+ [name: string]: unknown;
4990
+ };
4991
+ content: {
4992
+ "application/json": components["schemas"]["Error"];
4993
+ };
4994
+ };
4995
+ };
4996
+ };
4997
+ put?: never;
4998
+ post?: never;
4999
+ /** Delete a webhook */
5000
+ delete: {
5001
+ parameters: {
5002
+ query?: never;
5003
+ header?: never;
5004
+ path: {
5005
+ workspaceId: string;
5006
+ webhookId: string;
5007
+ };
5008
+ cookie?: never;
5009
+ };
5010
+ requestBody?: never;
5011
+ responses: {
5012
+ /** @description OK */
5013
+ 200: {
5014
+ headers: {
5015
+ [name: string]: unknown;
5016
+ };
5017
+ content: {
5018
+ "application/json": components["schemas"]["Ok"];
5019
+ };
5020
+ };
5021
+ /** @description Missing or invalid credentials */
5022
+ 401: {
5023
+ headers: {
5024
+ [name: string]: unknown;
5025
+ };
5026
+ content: {
5027
+ "application/json": components["schemas"]["Error"];
5028
+ };
5029
+ };
5030
+ /** @description Not allowed, or a limit was reached */
5031
+ 403: {
5032
+ headers: {
5033
+ [name: string]: unknown;
5034
+ };
5035
+ content: {
5036
+ "application/json": components["schemas"]["Error"];
5037
+ };
5038
+ };
5039
+ /** @description Not found */
5040
+ 404: {
5041
+ headers: {
5042
+ [name: string]: unknown;
5043
+ };
5044
+ content: {
5045
+ "application/json": components["schemas"]["Error"];
5046
+ };
5047
+ };
5048
+ /** @description Conflict */
5049
+ 409: {
5050
+ headers: {
5051
+ [name: string]: unknown;
5052
+ };
5053
+ content: {
5054
+ "application/json": components["schemas"]["Error"];
5055
+ };
5056
+ };
5057
+ /** @description Invalid input */
5058
+ 422: {
5059
+ headers: {
5060
+ [name: string]: unknown;
5061
+ };
5062
+ content: {
5063
+ "application/json": components["schemas"]["Error"];
5064
+ };
5065
+ };
5066
+ /** @description Rate limited */
5067
+ 429: {
5068
+ headers: {
5069
+ [name: string]: unknown;
5070
+ };
5071
+ content: {
5072
+ "application/json": components["schemas"]["Error"];
5073
+ };
5074
+ };
5075
+ };
5076
+ };
5077
+ options?: never;
5078
+ head?: never;
5079
+ /** Update a webhook, or turn it on or off */
5080
+ patch: {
5081
+ parameters: {
5082
+ query?: never;
5083
+ header?: never;
5084
+ path: {
5085
+ workspaceId: string;
5086
+ webhookId: string;
5087
+ };
5088
+ cookie?: never;
5089
+ };
5090
+ requestBody: {
5091
+ content: {
5092
+ "application/json": components["schemas"]["WebhookPatch"];
5093
+ };
5094
+ };
5095
+ responses: {
5096
+ /** @description OK */
5097
+ 200: {
5098
+ headers: {
5099
+ [name: string]: unknown;
5100
+ };
5101
+ content: {
5102
+ "application/json": components["schemas"]["Webhook"];
5103
+ };
5104
+ };
5105
+ /** @description Missing or invalid credentials */
5106
+ 401: {
5107
+ headers: {
5108
+ [name: string]: unknown;
5109
+ };
5110
+ content: {
5111
+ "application/json": components["schemas"]["Error"];
5112
+ };
5113
+ };
5114
+ /** @description Not allowed, or a limit was reached */
5115
+ 403: {
5116
+ headers: {
5117
+ [name: string]: unknown;
5118
+ };
5119
+ content: {
5120
+ "application/json": components["schemas"]["Error"];
5121
+ };
5122
+ };
5123
+ /** @description Not found */
5124
+ 404: {
5125
+ headers: {
5126
+ [name: string]: unknown;
5127
+ };
5128
+ content: {
5129
+ "application/json": components["schemas"]["Error"];
5130
+ };
5131
+ };
5132
+ /** @description Conflict */
5133
+ 409: {
5134
+ headers: {
5135
+ [name: string]: unknown;
5136
+ };
5137
+ content: {
5138
+ "application/json": components["schemas"]["Error"];
5139
+ };
5140
+ };
5141
+ /** @description Invalid input */
5142
+ 422: {
5143
+ headers: {
5144
+ [name: string]: unknown;
5145
+ };
5146
+ content: {
5147
+ "application/json": components["schemas"]["Error"];
5148
+ };
5149
+ };
5150
+ /** @description Rate limited */
5151
+ 429: {
5152
+ headers: {
5153
+ [name: string]: unknown;
5154
+ };
5155
+ content: {
5156
+ "application/json": components["schemas"]["Error"];
5157
+ };
5158
+ };
5159
+ };
5160
+ };
5161
+ trace?: never;
5162
+ };
5163
+ "/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}/test": {
5164
+ parameters: {
5165
+ query?: never;
5166
+ header?: never;
5167
+ path?: never;
5168
+ cookie?: never;
5169
+ };
5170
+ get?: never;
5171
+ put?: never;
5172
+ /** Send a test event now and report the response */
5173
+ post: {
5174
+ parameters: {
5175
+ query?: never;
5176
+ header?: never;
5177
+ path: {
5178
+ workspaceId: string;
5179
+ webhookId: string;
5180
+ };
5181
+ cookie?: never;
5182
+ };
5183
+ requestBody?: never;
5184
+ responses: {
5185
+ /** @description OK */
5186
+ 200: {
5187
+ headers: {
5188
+ [name: string]: unknown;
5189
+ };
5190
+ content: {
5191
+ "application/json": components["schemas"]["WebhookTestResult"];
5192
+ };
5193
+ };
5194
+ /** @description Missing or invalid credentials */
5195
+ 401: {
5196
+ headers: {
5197
+ [name: string]: unknown;
5198
+ };
5199
+ content: {
5200
+ "application/json": components["schemas"]["Error"];
5201
+ };
5202
+ };
5203
+ /** @description Not allowed, or a limit was reached */
5204
+ 403: {
5205
+ headers: {
5206
+ [name: string]: unknown;
5207
+ };
5208
+ content: {
5209
+ "application/json": components["schemas"]["Error"];
5210
+ };
5211
+ };
5212
+ /** @description Not found */
5213
+ 404: {
5214
+ headers: {
5215
+ [name: string]: unknown;
5216
+ };
5217
+ content: {
5218
+ "application/json": components["schemas"]["Error"];
5219
+ };
5220
+ };
5221
+ /** @description Conflict */
5222
+ 409: {
5223
+ headers: {
5224
+ [name: string]: unknown;
5225
+ };
5226
+ content: {
5227
+ "application/json": components["schemas"]["Error"];
5228
+ };
5229
+ };
5230
+ /** @description Invalid input */
5231
+ 422: {
5232
+ headers: {
5233
+ [name: string]: unknown;
5234
+ };
5235
+ content: {
5236
+ "application/json": components["schemas"]["Error"];
5237
+ };
5238
+ };
5239
+ /** @description Rate limited */
5240
+ 429: {
5241
+ headers: {
5242
+ [name: string]: unknown;
5243
+ };
5244
+ content: {
5245
+ "application/json": components["schemas"]["Error"];
5246
+ };
5247
+ };
5248
+ };
5249
+ };
5250
+ delete?: never;
5251
+ options?: never;
5252
+ head?: never;
5253
+ patch?: never;
5254
+ trace?: never;
5255
+ };
5256
+ "/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}/rotate-secret": {
5257
+ parameters: {
5258
+ query?: never;
5259
+ header?: never;
5260
+ path?: never;
5261
+ cookie?: never;
5262
+ };
5263
+ get?: never;
5264
+ put?: never;
5265
+ /** Replace the signing secret (returned once) */
5266
+ post: {
5267
+ parameters: {
5268
+ query?: never;
5269
+ header?: never;
5270
+ path: {
5271
+ workspaceId: string;
5272
+ webhookId: string;
5273
+ };
5274
+ cookie?: never;
5275
+ };
5276
+ requestBody?: never;
5277
+ responses: {
5278
+ /** @description OK */
5279
+ 200: {
5280
+ headers: {
5281
+ [name: string]: unknown;
5282
+ };
5283
+ content: {
5284
+ "application/json": {
5285
+ secret: string;
5286
+ };
5287
+ };
5288
+ };
5289
+ /** @description Missing or invalid credentials */
5290
+ 401: {
5291
+ headers: {
5292
+ [name: string]: unknown;
5293
+ };
5294
+ content: {
5295
+ "application/json": components["schemas"]["Error"];
5296
+ };
5297
+ };
5298
+ /** @description Not allowed, or a limit was reached */
5299
+ 403: {
5300
+ headers: {
5301
+ [name: string]: unknown;
5302
+ };
5303
+ content: {
5304
+ "application/json": components["schemas"]["Error"];
5305
+ };
5306
+ };
5307
+ /** @description Not found */
5308
+ 404: {
5309
+ headers: {
5310
+ [name: string]: unknown;
5311
+ };
5312
+ content: {
5313
+ "application/json": components["schemas"]["Error"];
5314
+ };
5315
+ };
5316
+ /** @description Conflict */
5317
+ 409: {
5318
+ headers: {
5319
+ [name: string]: unknown;
5320
+ };
5321
+ content: {
5322
+ "application/json": components["schemas"]["Error"];
5323
+ };
5324
+ };
5325
+ /** @description Invalid input */
5326
+ 422: {
5327
+ headers: {
5328
+ [name: string]: unknown;
5329
+ };
5330
+ content: {
5331
+ "application/json": components["schemas"]["Error"];
5332
+ };
5333
+ };
5334
+ /** @description Rate limited */
5335
+ 429: {
5336
+ headers: {
5337
+ [name: string]: unknown;
5338
+ };
5339
+ content: {
5340
+ "application/json": components["schemas"]["Error"];
5341
+ };
5342
+ };
5343
+ };
5344
+ };
5345
+ delete?: never;
5346
+ options?: never;
5347
+ head?: never;
5348
+ patch?: never;
5349
+ trace?: never;
5350
+ };
5351
+ "/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}/deliveries": {
5352
+ parameters: {
5353
+ query?: never;
5354
+ header?: never;
5355
+ path?: never;
5356
+ cookie?: never;
5357
+ };
5358
+ /** Recent deliveries, newest first (kept for 30 days) */
5359
+ get: {
5360
+ parameters: {
5361
+ query?: {
5362
+ limit?: number;
5363
+ before?: string;
5364
+ };
5365
+ header?: never;
5366
+ path: {
5367
+ workspaceId: string;
5368
+ webhookId: string;
5369
+ };
5370
+ cookie?: never;
5371
+ };
5372
+ requestBody?: never;
5373
+ responses: {
5374
+ /** @description OK */
5375
+ 200: {
5376
+ headers: {
5377
+ [name: string]: unknown;
5378
+ };
5379
+ content: {
5380
+ "application/json": {
5381
+ deliveries: components["schemas"]["WebhookDelivery"][];
5382
+ };
5383
+ };
5384
+ };
5385
+ /** @description Missing or invalid credentials */
5386
+ 401: {
5387
+ headers: {
5388
+ [name: string]: unknown;
5389
+ };
5390
+ content: {
5391
+ "application/json": components["schemas"]["Error"];
5392
+ };
5393
+ };
5394
+ /** @description Not allowed, or a limit was reached */
5395
+ 403: {
5396
+ headers: {
5397
+ [name: string]: unknown;
5398
+ };
5399
+ content: {
5400
+ "application/json": components["schemas"]["Error"];
5401
+ };
5402
+ };
5403
+ /** @description Not found */
5404
+ 404: {
5405
+ headers: {
5406
+ [name: string]: unknown;
5407
+ };
5408
+ content: {
5409
+ "application/json": components["schemas"]["Error"];
5410
+ };
5411
+ };
5412
+ /** @description Conflict */
5413
+ 409: {
5414
+ headers: {
5415
+ [name: string]: unknown;
5416
+ };
5417
+ content: {
5418
+ "application/json": components["schemas"]["Error"];
5419
+ };
5420
+ };
5421
+ /** @description Invalid input */
5422
+ 422: {
5423
+ headers: {
5424
+ [name: string]: unknown;
5425
+ };
5426
+ content: {
5427
+ "application/json": components["schemas"]["Error"];
5428
+ };
5429
+ };
5430
+ /** @description Rate limited */
5431
+ 429: {
5432
+ headers: {
5433
+ [name: string]: unknown;
5434
+ };
5435
+ content: {
5436
+ "application/json": components["schemas"]["Error"];
5437
+ };
5438
+ };
5439
+ };
5440
+ };
5441
+ put?: never;
5442
+ post?: never;
5443
+ delete?: never;
5444
+ options?: never;
5445
+ head?: never;
5446
+ patch?: never;
5447
+ trace?: never;
5448
+ };
5449
+ "/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}/deliveries/{deliveryId}/redeliver": {
5450
+ parameters: {
5451
+ query?: never;
5452
+ header?: never;
5453
+ path?: never;
5454
+ cookie?: never;
5455
+ };
5456
+ get?: never;
5457
+ put?: never;
5458
+ /** Queue a delivery again */
5459
+ post: {
5460
+ parameters: {
5461
+ query?: never;
5462
+ header?: never;
5463
+ path: {
5464
+ workspaceId: string;
5465
+ webhookId: string;
5466
+ deliveryId: string;
5467
+ };
5468
+ cookie?: never;
5469
+ };
5470
+ requestBody?: never;
5471
+ responses: {
5472
+ /** @description OK */
5473
+ 200: {
5474
+ headers: {
5475
+ [name: string]: unknown;
5476
+ };
5477
+ content: {
5478
+ "application/json": components["schemas"]["Ok"];
5479
+ };
5480
+ };
5481
+ /** @description Missing or invalid credentials */
5482
+ 401: {
5483
+ headers: {
5484
+ [name: string]: unknown;
5485
+ };
5486
+ content: {
5487
+ "application/json": components["schemas"]["Error"];
5488
+ };
5489
+ };
5490
+ /** @description Not allowed, or a limit was reached */
5491
+ 403: {
5492
+ headers: {
5493
+ [name: string]: unknown;
5494
+ };
5495
+ content: {
5496
+ "application/json": components["schemas"]["Error"];
5497
+ };
5498
+ };
5499
+ /** @description Not found */
5500
+ 404: {
5501
+ headers: {
5502
+ [name: string]: unknown;
5503
+ };
5504
+ content: {
5505
+ "application/json": components["schemas"]["Error"];
5506
+ };
5507
+ };
5508
+ /** @description Conflict */
5509
+ 409: {
5510
+ headers: {
5511
+ [name: string]: unknown;
5512
+ };
5513
+ content: {
5514
+ "application/json": components["schemas"]["Error"];
5515
+ };
5516
+ };
5517
+ /** @description Invalid input */
5518
+ 422: {
5519
+ headers: {
5520
+ [name: string]: unknown;
5521
+ };
5522
+ content: {
5523
+ "application/json": components["schemas"]["Error"];
5524
+ };
5525
+ };
5526
+ /** @description Rate limited */
5527
+ 429: {
5528
+ headers: {
5529
+ [name: string]: unknown;
5530
+ };
5531
+ content: {
5532
+ "application/json": components["schemas"]["Error"];
5533
+ };
5534
+ };
5535
+ };
5536
+ };
5537
+ delete?: never;
5538
+ options?: never;
5539
+ head?: never;
5540
+ patch?: never;
5541
+ trace?: never;
5542
+ };
5543
+ "/api/v1/workspaces/{workspaceId}/connections": {
5544
+ parameters: {
5545
+ query?: never;
5546
+ header?: never;
5547
+ path?: never;
5548
+ cookie?: never;
5549
+ };
5550
+ /** List Vercel and GitHub connections */
5551
+ get: {
5552
+ parameters: {
5553
+ query?: never;
5554
+ header?: never;
5555
+ path: {
5556
+ workspaceId: string;
5557
+ };
5558
+ cookie?: never;
5559
+ };
5560
+ requestBody?: never;
5561
+ responses: {
5562
+ /** @description OK */
5563
+ 200: {
5564
+ headers: {
5565
+ [name: string]: unknown;
5566
+ };
5567
+ content: {
5568
+ "application/json": {
5569
+ connections: components["schemas"]["Connection"][];
5570
+ };
5571
+ };
5572
+ };
5573
+ /** @description Missing or invalid credentials */
5574
+ 401: {
5575
+ headers: {
5576
+ [name: string]: unknown;
5577
+ };
5578
+ content: {
5579
+ "application/json": components["schemas"]["Error"];
5580
+ };
5581
+ };
5582
+ /** @description Not allowed, or a limit was reached */
5583
+ 403: {
5584
+ headers: {
5585
+ [name: string]: unknown;
5586
+ };
5587
+ content: {
5588
+ "application/json": components["schemas"]["Error"];
5589
+ };
5590
+ };
5591
+ /** @description Not found */
5592
+ 404: {
5593
+ headers: {
5594
+ [name: string]: unknown;
5595
+ };
5596
+ content: {
5597
+ "application/json": components["schemas"]["Error"];
5598
+ };
5599
+ };
5600
+ /** @description Conflict */
5601
+ 409: {
5602
+ headers: {
5603
+ [name: string]: unknown;
5604
+ };
5605
+ content: {
5606
+ "application/json": components["schemas"]["Error"];
5607
+ };
5608
+ };
5609
+ /** @description Invalid input */
5610
+ 422: {
5611
+ headers: {
5612
+ [name: string]: unknown;
5613
+ };
5614
+ content: {
5615
+ "application/json": components["schemas"]["Error"];
5616
+ };
5617
+ };
5618
+ /** @description Rate limited */
5619
+ 429: {
5620
+ headers: {
5621
+ [name: string]: unknown;
5622
+ };
5623
+ content: {
5624
+ "application/json": components["schemas"]["Error"];
5625
+ };
5626
+ };
5627
+ };
5628
+ };
5629
+ put?: never;
5630
+ /**
5631
+ * Connect a Vercel or GitHub account with an access token
5632
+ * @description Vercel: a token from vercel.com/account/tokens scoped to the team. GitHub: a fine-grained token with read and write access to Secrets (and Environments, for environment secrets) on the repositories you sync to. The token is encrypted at rest and never returned.
5633
+ */
5634
+ post: {
5635
+ parameters: {
5636
+ query?: never;
5637
+ header?: never;
5638
+ path: {
5639
+ workspaceId: string;
5640
+ };
5641
+ cookie?: never;
5642
+ };
5643
+ requestBody: {
5644
+ content: {
5645
+ "application/json": components["schemas"]["ConnectionInput"];
5646
+ };
5647
+ };
5648
+ responses: {
5649
+ /** @description Created */
5650
+ 201: {
5651
+ headers: {
5652
+ [name: string]: unknown;
5653
+ };
5654
+ content: {
5655
+ "application/json": components["schemas"]["Connection"];
5656
+ };
5657
+ };
5658
+ /** @description Missing or invalid credentials */
5659
+ 401: {
5660
+ headers: {
5661
+ [name: string]: unknown;
5662
+ };
5663
+ content: {
5664
+ "application/json": components["schemas"]["Error"];
5665
+ };
5666
+ };
5667
+ /** @description Not allowed, or a limit was reached */
5668
+ 403: {
5669
+ headers: {
5670
+ [name: string]: unknown;
5671
+ };
5672
+ content: {
5673
+ "application/json": components["schemas"]["Error"];
5674
+ };
5675
+ };
5676
+ /** @description Not found */
5677
+ 404: {
5678
+ headers: {
5679
+ [name: string]: unknown;
5680
+ };
5681
+ content: {
5682
+ "application/json": components["schemas"]["Error"];
5683
+ };
5684
+ };
5685
+ /** @description Conflict */
5686
+ 409: {
5687
+ headers: {
5688
+ [name: string]: unknown;
5689
+ };
5690
+ content: {
5691
+ "application/json": components["schemas"]["Error"];
5692
+ };
5693
+ };
5694
+ /** @description Invalid input */
5695
+ 422: {
5696
+ headers: {
5697
+ [name: string]: unknown;
5698
+ };
5699
+ content: {
5700
+ "application/json": components["schemas"]["Error"];
5701
+ };
5702
+ };
5703
+ /** @description Rate limited */
5704
+ 429: {
5705
+ headers: {
5706
+ [name: string]: unknown;
5707
+ };
5708
+ content: {
5709
+ "application/json": components["schemas"]["Error"];
5710
+ };
5711
+ };
5712
+ };
5713
+ };
5714
+ delete?: never;
5715
+ options?: never;
5716
+ head?: never;
5717
+ patch?: never;
5718
+ trace?: never;
5719
+ };
5720
+ "/api/v1/workspaces/{workspaceId}/connections/verify": {
5721
+ parameters: {
5722
+ query?: never;
5723
+ header?: never;
5724
+ path?: never;
5725
+ cookie?: never;
5726
+ };
5727
+ get?: never;
5728
+ put?: never;
5729
+ /** Check a provider token and list the Vercel teams it can reach */
5730
+ post: {
5731
+ parameters: {
5732
+ query?: never;
5733
+ header?: never;
5734
+ path: {
5735
+ workspaceId: string;
5736
+ };
5737
+ cookie?: never;
5738
+ };
5739
+ requestBody: {
5740
+ content: {
5741
+ "application/json": {
5742
+ provider: components["schemas"]["SyncProvider"];
5743
+ token: string;
5744
+ };
5745
+ };
5746
+ };
5747
+ responses: {
5748
+ /** @description OK */
5749
+ 200: {
5750
+ headers: {
5751
+ [name: string]: unknown;
5752
+ };
5753
+ content: {
5754
+ "application/json": components["schemas"]["ProviderAccount"];
5755
+ };
5756
+ };
5757
+ /** @description Missing or invalid credentials */
5758
+ 401: {
5759
+ headers: {
5760
+ [name: string]: unknown;
5761
+ };
5762
+ content: {
5763
+ "application/json": components["schemas"]["Error"];
5764
+ };
5765
+ };
5766
+ /** @description Not allowed, or a limit was reached */
5767
+ 403: {
5768
+ headers: {
5769
+ [name: string]: unknown;
5770
+ };
5771
+ content: {
5772
+ "application/json": components["schemas"]["Error"];
5773
+ };
5774
+ };
5775
+ /** @description Not found */
5776
+ 404: {
5777
+ headers: {
5778
+ [name: string]: unknown;
5779
+ };
5780
+ content: {
5781
+ "application/json": components["schemas"]["Error"];
5782
+ };
5783
+ };
5784
+ /** @description Conflict */
5785
+ 409: {
5786
+ headers: {
5787
+ [name: string]: unknown;
5788
+ };
5789
+ content: {
5790
+ "application/json": components["schemas"]["Error"];
5791
+ };
5792
+ };
5793
+ /** @description Invalid input */
5794
+ 422: {
5795
+ headers: {
5796
+ [name: string]: unknown;
5797
+ };
5798
+ content: {
5799
+ "application/json": components["schemas"]["Error"];
5800
+ };
5801
+ };
5802
+ /** @description Rate limited */
5803
+ 429: {
5804
+ headers: {
5805
+ [name: string]: unknown;
5806
+ };
5807
+ content: {
5808
+ "application/json": components["schemas"]["Error"];
5809
+ };
5810
+ };
5811
+ };
5812
+ };
5813
+ delete?: never;
5814
+ options?: never;
5815
+ head?: never;
5816
+ patch?: never;
5817
+ trace?: never;
5818
+ };
5819
+ "/api/v1/workspaces/{workspaceId}/connections/{connectionId}": {
5820
+ parameters: {
5821
+ query?: never;
5822
+ header?: never;
5823
+ path?: never;
5824
+ cookie?: never;
5825
+ };
5826
+ get?: never;
5827
+ put?: never;
5828
+ post?: never;
5829
+ /** Remove a connection and every sync that uses it */
5830
+ delete: {
5831
+ parameters: {
5832
+ query?: never;
5833
+ header?: never;
5834
+ path: {
5835
+ workspaceId: string;
5836
+ connectionId: string;
5837
+ };
5838
+ cookie?: never;
5839
+ };
5840
+ requestBody?: never;
5841
+ responses: {
5842
+ /** @description OK */
5843
+ 200: {
5844
+ headers: {
5845
+ [name: string]: unknown;
5846
+ };
5847
+ content: {
5848
+ "application/json": components["schemas"]["Ok"];
5849
+ };
5850
+ };
5851
+ /** @description Missing or invalid credentials */
5852
+ 401: {
5853
+ headers: {
5854
+ [name: string]: unknown;
5855
+ };
5856
+ content: {
5857
+ "application/json": components["schemas"]["Error"];
5858
+ };
5859
+ };
5860
+ /** @description Not allowed, or a limit was reached */
5861
+ 403: {
5862
+ headers: {
5863
+ [name: string]: unknown;
5864
+ };
5865
+ content: {
5866
+ "application/json": components["schemas"]["Error"];
5867
+ };
5868
+ };
5869
+ /** @description Not found */
5870
+ 404: {
5871
+ headers: {
5872
+ [name: string]: unknown;
5873
+ };
5874
+ content: {
5875
+ "application/json": components["schemas"]["Error"];
5876
+ };
5877
+ };
5878
+ /** @description Conflict */
5879
+ 409: {
5880
+ headers: {
5881
+ [name: string]: unknown;
5882
+ };
5883
+ content: {
5884
+ "application/json": components["schemas"]["Error"];
5885
+ };
5886
+ };
5887
+ /** @description Invalid input */
5888
+ 422: {
5889
+ headers: {
5890
+ [name: string]: unknown;
5891
+ };
5892
+ content: {
5893
+ "application/json": components["schemas"]["Error"];
5894
+ };
5895
+ };
5896
+ /** @description Rate limited */
5897
+ 429: {
5898
+ headers: {
5899
+ [name: string]: unknown;
5900
+ };
5901
+ content: {
5902
+ "application/json": components["schemas"]["Error"];
5903
+ };
5904
+ };
5905
+ };
5906
+ };
5907
+ options?: never;
5908
+ head?: never;
5909
+ patch?: never;
5910
+ trace?: never;
5911
+ };
5912
+ "/api/v1/workspaces/{workspaceId}/connections/{connectionId}/targets": {
5913
+ parameters: {
5914
+ query?: never;
5915
+ header?: never;
5916
+ path?: never;
5917
+ cookie?: never;
5918
+ };
5919
+ /** List Vercel projects or GitHub repositories the connection can write to */
5920
+ get: {
5921
+ parameters: {
5922
+ query?: {
5923
+ search?: string;
5924
+ };
5925
+ header?: never;
5926
+ path: {
5927
+ workspaceId: string;
5928
+ connectionId: string;
5929
+ };
5930
+ cookie?: never;
5931
+ };
5932
+ requestBody?: never;
5933
+ responses: {
5934
+ /** @description OK */
5935
+ 200: {
5936
+ headers: {
5937
+ [name: string]: unknown;
5938
+ };
5939
+ content: {
5940
+ "application/json": {
5941
+ targets: components["schemas"]["ProviderTarget"][];
4520
5942
  };
4521
5943
  };
4522
5944
  };
@@ -4576,31 +5998,32 @@ export interface paths {
4576
5998
  };
4577
5999
  };
4578
6000
  };
6001
+ put?: never;
6002
+ post?: never;
4579
6003
  delete?: never;
4580
6004
  options?: never;
4581
6005
  head?: never;
4582
6006
  patch?: never;
4583
6007
  trace?: never;
4584
6008
  };
4585
- "/api/v1/workspaces/{workspaceId}/projects/{projectId}/compare": {
6009
+ "/api/v1/workspaces/{workspaceId}/connections/{connectionId}/environments": {
4586
6010
  parameters: {
4587
6011
  query?: never;
4588
6012
  header?: never;
4589
6013
  path?: never;
4590
6014
  cookie?: never;
4591
6015
  };
4592
- /** Compare one layer across two environments (no values) */
6016
+ /** List the GitHub environments of a repository */
4593
6017
  get: {
4594
6018
  parameters: {
4595
6019
  query: {
4596
- from: string;
4597
- to: string;
4598
- serviceId?: string;
6020
+ owner: string;
6021
+ repo: string;
4599
6022
  };
4600
6023
  header?: never;
4601
6024
  path: {
4602
6025
  workspaceId: string;
4603
- projectId: string;
6026
+ connectionId: string;
4604
6027
  };
4605
6028
  cookie?: never;
4606
6029
  };
@@ -4613,11 +6036,7 @@ export interface paths {
4613
6036
  };
4614
6037
  content: {
4615
6038
  "application/json": {
4616
- rows: {
4617
- key: string;
4618
- /** @enum {string} */
4619
- status: "only_from" | "only_to" | "same" | "different";
4620
- }[];
6039
+ environments: string[];
4621
6040
  };
4622
6041
  };
4623
6042
  };
@@ -4685,16 +6104,98 @@ export interface paths {
4685
6104
  patch?: never;
4686
6105
  trace?: never;
4687
6106
  };
4688
- "/api/v1/workspaces/{workspaceId}/projects/{projectId}/promote": {
6107
+ "/api/v1/workspaces/{workspaceId}/projects/{projectId}/syncs": {
4689
6108
  parameters: {
4690
6109
  query?: never;
4691
6110
  header?: never;
4692
6111
  path?: never;
4693
6112
  cookie?: never;
4694
6113
  };
4695
- get?: never;
6114
+ /** List the project's syncs */
6115
+ get: {
6116
+ parameters: {
6117
+ query?: never;
6118
+ header?: never;
6119
+ path: {
6120
+ workspaceId: string;
6121
+ projectId: string;
6122
+ };
6123
+ cookie?: never;
6124
+ };
6125
+ requestBody?: never;
6126
+ responses: {
6127
+ /** @description OK */
6128
+ 200: {
6129
+ headers: {
6130
+ [name: string]: unknown;
6131
+ };
6132
+ content: {
6133
+ "application/json": {
6134
+ syncs: components["schemas"]["Sync"][];
6135
+ };
6136
+ };
6137
+ };
6138
+ /** @description Missing or invalid credentials */
6139
+ 401: {
6140
+ headers: {
6141
+ [name: string]: unknown;
6142
+ };
6143
+ content: {
6144
+ "application/json": components["schemas"]["Error"];
6145
+ };
6146
+ };
6147
+ /** @description Not allowed, or a limit was reached */
6148
+ 403: {
6149
+ headers: {
6150
+ [name: string]: unknown;
6151
+ };
6152
+ content: {
6153
+ "application/json": components["schemas"]["Error"];
6154
+ };
6155
+ };
6156
+ /** @description Not found */
6157
+ 404: {
6158
+ headers: {
6159
+ [name: string]: unknown;
6160
+ };
6161
+ content: {
6162
+ "application/json": components["schemas"]["Error"];
6163
+ };
6164
+ };
6165
+ /** @description Conflict */
6166
+ 409: {
6167
+ headers: {
6168
+ [name: string]: unknown;
6169
+ };
6170
+ content: {
6171
+ "application/json": components["schemas"]["Error"];
6172
+ };
6173
+ };
6174
+ /** @description Invalid input */
6175
+ 422: {
6176
+ headers: {
6177
+ [name: string]: unknown;
6178
+ };
6179
+ content: {
6180
+ "application/json": components["schemas"]["Error"];
6181
+ };
6182
+ };
6183
+ /** @description Rate limited */
6184
+ 429: {
6185
+ headers: {
6186
+ [name: string]: unknown;
6187
+ };
6188
+ content: {
6189
+ "application/json": components["schemas"]["Error"];
6190
+ };
6191
+ };
6192
+ };
6193
+ };
4696
6194
  put?: never;
4697
- /** Copy selected keys from one environment to another */
6195
+ /**
6196
+ * Sync one environment and layer to a Vercel project or GitHub repository
6197
+ * @description envpass pushes the environment's values (never personal overrides) after every change, and removes keys it created when they are deleted. Keys that already exist at the destination and were not created by envpass are overwritten only when they exist in envpass too.
6198
+ */
4698
6199
  post: {
4699
6200
  parameters: {
4700
6201
  query?: never;
@@ -4707,25 +6208,17 @@ export interface paths {
4707
6208
  };
4708
6209
  requestBody: {
4709
6210
  content: {
4710
- "application/json": {
4711
- /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
4712
- from: string;
4713
- /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
4714
- to: string;
4715
- /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
4716
- serviceId?: string | null;
4717
- keys: string[];
4718
- };
6211
+ "application/json": components["schemas"]["SyncInput"];
4719
6212
  };
4720
6213
  };
4721
6214
  responses: {
4722
- /** @description OK */
4723
- 200: {
6215
+ /** @description Created */
6216
+ 201: {
4724
6217
  headers: {
4725
6218
  [name: string]: unknown;
4726
6219
  };
4727
6220
  content: {
4728
- "application/json": components["schemas"]["UpsertResult"];
6221
+ "application/json": components["schemas"]["Sync"];
4729
6222
  };
4730
6223
  };
4731
6224
  /** @description Missing or invalid credentials */
@@ -4790,7 +6283,7 @@ export interface paths {
4790
6283
  patch?: never;
4791
6284
  trace?: never;
4792
6285
  };
4793
- "/api/v1/shares": {
6286
+ "/api/v1/workspaces/{workspaceId}/projects/{projectId}/syncs/{syncId}": {
4794
6287
  parameters: {
4795
6288
  query?: never;
4796
6289
  header?: never;
@@ -4799,55 +6292,28 @@ export interface paths {
4799
6292
  };
4800
6293
  get?: never;
4801
6294
  put?: never;
4802
- /**
4803
- * Store an encrypted share link
4804
- * @description Encrypt in the client with AES-256-GCM and keep the key in the URL fragment. The server only stores ciphertext.
4805
- */
4806
- post: {
6295
+ post?: never;
6296
+ /** Delete a sync (values already pushed stay at the destination) */
6297
+ delete: {
4807
6298
  parameters: {
4808
6299
  query?: never;
4809
6300
  header?: never;
4810
- path?: never;
4811
- cookie?: never;
4812
- };
4813
- requestBody: {
4814
- content: {
4815
- "application/json": {
4816
- ciphertext: string;
4817
- iv: string;
4818
- passphraseSalt?: string | null;
4819
- /**
4820
- * @default 1d
4821
- * @enum {string}
4822
- */
4823
- ttl?: "1h" | "1d" | "7d";
4824
- /** @default 1 */
4825
- maxViews?: number;
4826
- source?: {
4827
- /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
4828
- workspaceId: string;
4829
- /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
4830
- projectId: string;
4831
- /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
4832
- environmentId: string;
4833
- /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
4834
- serviceId?: string | null;
4835
- keys: string[];
4836
- } | null;
4837
- };
6301
+ path: {
6302
+ workspaceId: string;
6303
+ projectId: string;
6304
+ syncId: string;
4838
6305
  };
6306
+ cookie?: never;
4839
6307
  };
6308
+ requestBody?: never;
4840
6309
  responses: {
4841
- /** @description Created */
4842
- 201: {
6310
+ /** @description OK */
6311
+ 200: {
4843
6312
  headers: {
4844
6313
  [name: string]: unknown;
4845
6314
  };
4846
6315
  content: {
4847
- "application/json": {
4848
- id: string;
4849
- expiresAt: string;
4850
- };
6316
+ "application/json": components["schemas"]["Ok"];
4851
6317
  };
4852
6318
  };
4853
6319
  /** @description Missing or invalid credentials */
@@ -4906,30 +6372,27 @@ export interface paths {
4906
6372
  };
4907
6373
  };
4908
6374
  };
4909
- delete?: never;
4910
6375
  options?: never;
4911
6376
  head?: never;
4912
- patch?: never;
4913
- trace?: never;
4914
- };
4915
- "/api/v1/shares/{shareId}": {
4916
- parameters: {
4917
- query?: never;
4918
- header?: never;
4919
- path?: never;
4920
- cookie?: never;
4921
- };
4922
- /** Check a share link without using up a view */
4923
- get: {
6377
+ /** Pause or resume a sync */
6378
+ patch: {
4924
6379
  parameters: {
4925
6380
  query?: never;
4926
6381
  header?: never;
4927
6382
  path: {
4928
- shareId: string;
6383
+ workspaceId: string;
6384
+ projectId: string;
6385
+ syncId: string;
4929
6386
  };
4930
6387
  cookie?: never;
4931
6388
  };
4932
- requestBody?: never;
6389
+ requestBody: {
6390
+ content: {
6391
+ "application/json": {
6392
+ enabled: boolean;
6393
+ };
6394
+ };
6395
+ };
4933
6396
  responses: {
4934
6397
  /** @description OK */
4935
6398
  200: {
@@ -4937,11 +6400,7 @@ export interface paths {
4937
6400
  [name: string]: unknown;
4938
6401
  };
4939
6402
  content: {
4940
- "application/json": {
4941
- expiresAt: string;
4942
- viewsLeft: number;
4943
- hasPassphrase: boolean;
4944
- };
6403
+ "application/json": components["schemas"]["Ok"];
4945
6404
  };
4946
6405
  };
4947
6406
  /** @description Missing or invalid credentials */
@@ -5000,15 +6459,9 @@ export interface paths {
5000
6459
  };
5001
6460
  };
5002
6461
  };
5003
- put?: never;
5004
- post?: never;
5005
- delete?: never;
5006
- options?: never;
5007
- head?: never;
5008
- patch?: never;
5009
6462
  trace?: never;
5010
6463
  };
5011
- "/api/v1/shares/{shareId}/open": {
6464
+ "/api/v1/workspaces/{workspaceId}/projects/{projectId}/syncs/{syncId}/run": {
5012
6465
  parameters: {
5013
6466
  query?: never;
5014
6467
  header?: never;
@@ -5017,30 +6470,27 @@ export interface paths {
5017
6470
  };
5018
6471
  get?: never;
5019
6472
  put?: never;
5020
- /** Open a share link (uses one view, deletes it after the last) */
6473
+ /** Queue a sync run now */
5021
6474
  post: {
5022
6475
  parameters: {
5023
6476
  query?: never;
5024
6477
  header?: never;
5025
6478
  path: {
5026
- shareId: string;
6479
+ workspaceId: string;
6480
+ projectId: string;
6481
+ syncId: string;
5027
6482
  };
5028
6483
  cookie?: never;
5029
6484
  };
5030
6485
  requestBody?: never;
5031
6486
  responses: {
5032
- /** @description OK */
5033
- 200: {
6487
+ /** @description Queued */
6488
+ 202: {
5034
6489
  headers: {
5035
6490
  [name: string]: unknown;
5036
6491
  };
5037
6492
  content: {
5038
- "application/json": {
5039
- ciphertext: string;
5040
- iv: string;
5041
- passphraseSalt: string | null;
5042
- viewsLeft: number;
5043
- };
6493
+ "application/json": components["schemas"]["Ok"];
5044
6494
  };
5045
6495
  };
5046
6496
  /** @description Missing or invalid credentials */
@@ -5143,10 +6593,6 @@ export interface components {
5143
6593
  used: number;
5144
6594
  max: number;
5145
6595
  };
5146
- services: {
5147
- used: number;
5148
- max: number;
5149
- };
5150
6596
  }[];
5151
6597
  rates: {
5152
6598
  apiRequestsPerMinute: number;
@@ -5192,7 +6638,6 @@ export interface components {
5192
6638
  };
5193
6639
  ManageFlags: {
5194
6640
  projects: boolean;
5195
- services: boolean;
5196
6641
  environments: boolean;
5197
6642
  members: boolean;
5198
6643
  roles: boolean;
@@ -5263,20 +6708,6 @@ export interface components {
5263
6708
  * @example 2026-11-12T10:00:00.000Z
5264
6709
  */
5265
6710
  createdAt: string;
5266
- serviceCount: number;
5267
- };
5268
- Service: {
5269
- /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
5270
- id: string;
5271
- /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
5272
- projectId: string;
5273
- name: string;
5274
- slug: string;
5275
- /**
5276
- * Format: date-time
5277
- * @example 2026-11-12T10:00:00.000Z
5278
- */
5279
- createdAt: string;
5280
6711
  };
5281
6712
  ServiceToken: {
5282
6713
  /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
@@ -5288,8 +6719,6 @@ export interface components {
5288
6719
  /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
5289
6720
  projectId: string;
5290
6721
  projectName: string;
5291
- serviceId: string | null;
5292
- serviceName: string | null;
5293
6722
  /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
5294
6723
  createdByUserId: string;
5295
6724
  createdByName: string;
@@ -5328,7 +6757,6 @@ export interface components {
5328
6757
  actorName: string | null;
5329
6758
  actorEmail: string | null;
5330
6759
  projectId: string | null;
5331
- serviceId: string | null;
5332
6760
  environmentId: string | null;
5333
6761
  keyName: string | null;
5334
6762
  metadata: {
@@ -5350,7 +6778,7 @@ export interface components {
5350
6778
  }[];
5351
6779
  };
5352
6780
  /** @enum {string} */
5353
- SecretSource: "shared" | "service" | "personal";
6781
+ SecretSource: "shared" | "personal";
5354
6782
  SecretList: {
5355
6783
  access: components["schemas"]["Access"];
5356
6784
  personalOverridesEnabled: boolean;
@@ -5368,17 +6796,6 @@ export interface components {
5368
6796
  updatedBy: string | null;
5369
6797
  note: string | null;
5370
6798
  } | null;
5371
- service: {
5372
- /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
5373
- id: string;
5374
- /**
5375
- * Format: date-time
5376
- * @example 2026-11-12T10:00:00.000Z
5377
- */
5378
- updatedAt: string;
5379
- updatedBy: string | null;
5380
- note: string | null;
5381
- } | null;
5382
6799
  personal: {
5383
6800
  /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
5384
6801
  id: string;
@@ -5400,8 +6817,6 @@ export interface components {
5400
6817
  UpsertSecrets: {
5401
6818
  /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
5402
6819
  environmentId: string;
5403
- /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
5404
- serviceId?: string | null;
5405
6820
  personal?: boolean;
5406
6821
  entries: {
5407
6822
  /** @example DATABASE_URL */
@@ -5429,6 +6844,211 @@ export interface components {
5429
6844
  isCurrent: boolean;
5430
6845
  }[];
5431
6846
  };
6847
+ Webhook: {
6848
+ /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
6849
+ id: string;
6850
+ url: string;
6851
+ description: string | null;
6852
+ /** @enum {string} */
6853
+ format: "json" | "slack";
6854
+ events: string[];
6855
+ projectIds: string[];
6856
+ environmentIds: string[];
6857
+ enabled: boolean;
6858
+ disabledReason: string | null;
6859
+ consecutiveFailures: number;
6860
+ /**
6861
+ * Format: date-time
6862
+ * @example 2026-11-12T10:00:00.000Z
6863
+ */
6864
+ createdAt: string;
6865
+ /**
6866
+ * Format: date-time
6867
+ * @example 2026-11-12T10:00:00.000Z
6868
+ */
6869
+ updatedAt: string;
6870
+ lastDelivery: {
6871
+ /** @enum {string} */
6872
+ status: "pending" | "retrying" | "success" | "failed";
6873
+ /**
6874
+ * Format: date-time
6875
+ * @example 2026-11-12T10:00:00.000Z
6876
+ */
6877
+ createdAt: string;
6878
+ responseStatus: number | null;
6879
+ } | null;
6880
+ };
6881
+ WebhookInput: {
6882
+ /** Format: uri */
6883
+ url: string;
6884
+ description?: string | null;
6885
+ /** @enum {string} */
6886
+ format?: "json" | "slack";
6887
+ events: components["schemas"]["WebhookEvent"][];
6888
+ projectIds?: string[];
6889
+ environmentIds?: string[];
6890
+ };
6891
+ /** @enum {string} */
6892
+ WebhookEvent: "secrets.changed" | "sync.succeeded" | "sync.failed";
6893
+ WebhookPatch: {
6894
+ /** Format: uri */
6895
+ url?: string;
6896
+ description?: string | null;
6897
+ /** @enum {string} */
6898
+ format?: "json" | "slack";
6899
+ events?: components["schemas"]["WebhookEvent"][];
6900
+ projectIds?: string[];
6901
+ environmentIds?: string[];
6902
+ enabled?: boolean;
6903
+ };
6904
+ WebhookTestResult: {
6905
+ ok: boolean;
6906
+ responseStatus: number | null;
6907
+ durationMs: number;
6908
+ error: string | null;
6909
+ };
6910
+ WebhookDelivery: {
6911
+ /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
6912
+ id: string;
6913
+ eventId: string;
6914
+ eventType: string;
6915
+ /** @enum {string} */
6916
+ status: "pending" | "retrying" | "success" | "failed";
6917
+ attempts: number;
6918
+ responseStatus: number | null;
6919
+ error: string | null;
6920
+ durationMs: number | null;
6921
+ payload: {
6922
+ [key: string]: unknown;
6923
+ };
6924
+ /**
6925
+ * Format: date-time
6926
+ * @example 2026-11-12T10:00:00.000Z
6927
+ */
6928
+ createdAt: string;
6929
+ /**
6930
+ * Format: date-time
6931
+ * @example 2026-11-12T10:00:00.000Z
6932
+ */
6933
+ lastAttemptAt: string | null;
6934
+ /**
6935
+ * Format: date-time
6936
+ * @example 2026-11-12T10:00:00.000Z
6937
+ */
6938
+ deliveredAt: string | null;
6939
+ };
6940
+ Connection: {
6941
+ /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
6942
+ id: string;
6943
+ provider: components["schemas"]["SyncProvider"];
6944
+ name: string;
6945
+ account: string;
6946
+ teamId: string | null;
6947
+ teamSlug: string | null;
6948
+ /**
6949
+ * Format: date-time
6950
+ * @example 2026-11-12T10:00:00.000Z
6951
+ */
6952
+ createdAt: string;
6953
+ /**
6954
+ * Format: date-time
6955
+ * @example 2026-11-12T10:00:00.000Z
6956
+ */
6957
+ lastUsedAt: string | null;
6958
+ createdByName: string | null;
6959
+ syncs: number;
6960
+ };
6961
+ /** @enum {string} */
6962
+ SyncProvider: "vercel" | "github";
6963
+ ProviderAccount: {
6964
+ account: string;
6965
+ teams: {
6966
+ id: string;
6967
+ slug: string;
6968
+ name: string;
6969
+ }[];
6970
+ };
6971
+ ConnectionInput: {
6972
+ provider: components["schemas"]["SyncProvider"];
6973
+ token: string;
6974
+ name?: string | null;
6975
+ teamId?: string | null;
6976
+ };
6977
+ ProviderTarget: {
6978
+ id: string;
6979
+ label: string;
6980
+ name: string;
6981
+ owner?: string;
6982
+ };
6983
+ Sync: {
6984
+ /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
6985
+ id: string;
6986
+ /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
6987
+ projectId: string;
6988
+ /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
6989
+ environmentId: string;
6990
+ environmentSlug: string;
6991
+ environmentName: string;
6992
+ /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
6993
+ connectionId: string;
6994
+ connectionName: string;
6995
+ provider: components["schemas"]["SyncProvider"];
6996
+ target: components["schemas"]["SyncTarget"];
6997
+ destination: string;
6998
+ enabled: boolean;
6999
+ /** @enum {string} */
7000
+ status: "pending" | "running" | "ok" | "error";
7001
+ lastError: string | null;
7002
+ lastResult: {
7003
+ created: number;
7004
+ updated: number;
7005
+ deleted: number;
7006
+ unchanged: number;
7007
+ skipped: {
7008
+ key: string;
7009
+ reason: string;
7010
+ }[];
7011
+ } | null;
7012
+ /**
7013
+ * Format: date-time
7014
+ * @example 2026-11-12T10:00:00.000Z
7015
+ */
7016
+ lastSyncedAt: string | null;
7017
+ /**
7018
+ * Format: date-time
7019
+ * @example 2026-11-12T10:00:00.000Z
7020
+ */
7021
+ lastRunStartedAt: string | null;
7022
+ managedKeys: number;
7023
+ /**
7024
+ * Format: date-time
7025
+ * @example 2026-11-12T10:00:00.000Z
7026
+ */
7027
+ createdAt: string;
7028
+ createdByName: string | null;
7029
+ };
7030
+ SyncTarget: {
7031
+ /** @enum {string} */
7032
+ provider: "vercel";
7033
+ projectId: string;
7034
+ projectName: string;
7035
+ /** @enum {string} */
7036
+ target: "production" | "preview" | "development";
7037
+ gitBranch?: string | null;
7038
+ } | {
7039
+ /** @enum {string} */
7040
+ provider: "github";
7041
+ owner: string;
7042
+ repo: string;
7043
+ environment?: string | null;
7044
+ };
7045
+ SyncInput: {
7046
+ /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
7047
+ connectionId: string;
7048
+ /** @example 0193b3c2-6a8e-7c1f-9b0e-2f9d2a4c1e77 */
7049
+ environmentId: string;
7050
+ target: components["schemas"]["SyncTarget"];
7051
+ };
5432
7052
  };
5433
7053
  responses: never;
5434
7054
  parameters: never;