@app-vitals/agent-admin 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/openapi.json +104 -1
- package/openapi.platform.json +104 -1
- package/package.json +2 -2
- package/prisma/client/commonInputTypes.ts +75 -0
- package/prisma/client/internal/class.ts +4 -4
- package/prisma/client/internal/prismaNamespace.ts +9 -0
- package/prisma/client/internal/prismaNamespaceBrowser.ts +9 -0
- package/prisma/client/models/AgentGitHubInstallationsSnapshot.ts +27 -1
- package/prisma/migrations/20261028000000_add_repo_access_to_github_installations_snapshot/migration.sql +3 -0
- package/prisma/schema/schema.prisma +1 -0
- package/src/admin-boot.ts +7 -0
- package/src/agent-account-assignment.ts +42 -10
- package/src/agent-github-installations.integration.test.ts +32 -0
- package/src/agent-github-installations.ts +11 -1
- package/src/agent-provisioner.ts +69 -4
- package/src/agent-provisioner.unit.test.ts +136 -0
- package/src/agents-api.integration.test.ts +147 -0
- package/src/agents-api.smoke.test.ts +288 -1
- package/src/agents-api.ts +89 -4
- package/src/agents.ts +7 -0
- package/src/api.smoke.test.ts +15 -0
- package/src/api.ts +6 -2
- package/src/kubernetes-client.unit.test.ts +22 -0
- package/src/openapi-schemas.ts +51 -0
- package/src/openapi-schemas.unit.test.ts +31 -0
- package/src/repo-access-config.ts +22 -0
- package/src/repo-access-config.unit.test.ts +34 -0
package/openapi.json
CHANGED
|
@@ -204,6 +204,12 @@
|
|
|
204
204
|
"typeName": {
|
|
205
205
|
"type": "string"
|
|
206
206
|
},
|
|
207
|
+
"podServiceAccountName": {
|
|
208
|
+
"type": [
|
|
209
|
+
"string",
|
|
210
|
+
"null"
|
|
211
|
+
]
|
|
212
|
+
},
|
|
207
213
|
"accountId": {
|
|
208
214
|
"type": [
|
|
209
215
|
"string",
|
|
@@ -303,6 +309,7 @@
|
|
|
303
309
|
"patchAuthorAllowlist",
|
|
304
310
|
"restrictSlackToMembers",
|
|
305
311
|
"typeName",
|
|
312
|
+
"podServiceAccountName",
|
|
306
313
|
"accountId",
|
|
307
314
|
"createdAt",
|
|
308
315
|
"updatedAt",
|
|
@@ -372,6 +379,15 @@
|
|
|
372
379
|
"minLength": 1,
|
|
373
380
|
"example": "acct_123"
|
|
374
381
|
},
|
|
382
|
+
"podServiceAccountName": {
|
|
383
|
+
"type": [
|
|
384
|
+
"string",
|
|
385
|
+
"null"
|
|
386
|
+
],
|
|
387
|
+
"maxLength": 63,
|
|
388
|
+
"pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$",
|
|
389
|
+
"example": "agent-pod-sa"
|
|
390
|
+
},
|
|
375
391
|
"trialExpiresAt": {
|
|
376
392
|
"type": [
|
|
377
393
|
"string",
|
|
@@ -2620,6 +2636,16 @@
|
|
|
2620
2636
|
"$ref": "#/components/schemas/GitHubInstallation"
|
|
2621
2637
|
}
|
|
2622
2638
|
},
|
|
2639
|
+
"repoAccess": {
|
|
2640
|
+
"type": [
|
|
2641
|
+
"array",
|
|
2642
|
+
"null"
|
|
2643
|
+
],
|
|
2644
|
+
"items": {
|
|
2645
|
+
"$ref": "#/components/schemas/RepoAccessEntry"
|
|
2646
|
+
},
|
|
2647
|
+
"description": "Latest per-repo access probe result; null until a runtime with the repo-access check enabled reports one."
|
|
2648
|
+
},
|
|
2623
2649
|
"createdAt": {
|
|
2624
2650
|
"type": "string",
|
|
2625
2651
|
"format": "date-time",
|
|
@@ -2631,6 +2657,7 @@
|
|
|
2631
2657
|
"agentId",
|
|
2632
2658
|
"reportedAt",
|
|
2633
2659
|
"installations",
|
|
2660
|
+
"repoAccess",
|
|
2634
2661
|
"createdAt"
|
|
2635
2662
|
]
|
|
2636
2663
|
},
|
|
@@ -2671,6 +2698,55 @@
|
|
|
2671
2698
|
],
|
|
2672
2699
|
"additionalProperties": false
|
|
2673
2700
|
},
|
|
2701
|
+
"RepoAccessEntry": {
|
|
2702
|
+
"type": "object",
|
|
2703
|
+
"properties": {
|
|
2704
|
+
"repo": {
|
|
2705
|
+
"type": "string",
|
|
2706
|
+
"minLength": 1,
|
|
2707
|
+
"maxLength": 200,
|
|
2708
|
+
"example": "agent"
|
|
2709
|
+
},
|
|
2710
|
+
"owner": {
|
|
2711
|
+
"type": "string",
|
|
2712
|
+
"minLength": 1,
|
|
2713
|
+
"maxLength": 200,
|
|
2714
|
+
"example": "app-vitals"
|
|
2715
|
+
},
|
|
2716
|
+
"read": {
|
|
2717
|
+
"type": "boolean",
|
|
2718
|
+
"example": true
|
|
2719
|
+
},
|
|
2720
|
+
"write": {
|
|
2721
|
+
"type": "boolean",
|
|
2722
|
+
"example": false
|
|
2723
|
+
},
|
|
2724
|
+
"checkedAt": {
|
|
2725
|
+
"type": "string",
|
|
2726
|
+
"format": "date-time",
|
|
2727
|
+
"example": "2026-01-01T00:00:00.000Z"
|
|
2728
|
+
},
|
|
2729
|
+
"error": {
|
|
2730
|
+
"type": "string",
|
|
2731
|
+
"enum": [
|
|
2732
|
+
"not_found",
|
|
2733
|
+
"forbidden",
|
|
2734
|
+
"rate_limited",
|
|
2735
|
+
"network"
|
|
2736
|
+
],
|
|
2737
|
+
"description": "Why the probe could not read the repo; absent when the probe succeeded.",
|
|
2738
|
+
"example": "not_found"
|
|
2739
|
+
}
|
|
2740
|
+
},
|
|
2741
|
+
"required": [
|
|
2742
|
+
"repo",
|
|
2743
|
+
"owner",
|
|
2744
|
+
"read",
|
|
2745
|
+
"write",
|
|
2746
|
+
"checkedAt"
|
|
2747
|
+
],
|
|
2748
|
+
"additionalProperties": false
|
|
2749
|
+
},
|
|
2674
2750
|
"PutGitHubInstallationsBody": {
|
|
2675
2751
|
"type": "object",
|
|
2676
2752
|
"properties": {
|
|
@@ -2684,6 +2760,13 @@
|
|
|
2684
2760
|
"items": {
|
|
2685
2761
|
"$ref": "#/components/schemas/GitHubInstallation"
|
|
2686
2762
|
}
|
|
2763
|
+
},
|
|
2764
|
+
"repos": {
|
|
2765
|
+
"type": "array",
|
|
2766
|
+
"items": {
|
|
2767
|
+
"$ref": "#/components/schemas/RepoAccessEntry"
|
|
2768
|
+
},
|
|
2769
|
+
"description": "Per-repo access probe result (COS-44.1). Omit to leave the stored result unchanged; send [] to clear it."
|
|
2687
2770
|
}
|
|
2688
2771
|
},
|
|
2689
2772
|
"required": [
|
|
@@ -3479,7 +3562,7 @@
|
|
|
3479
3562
|
},
|
|
3480
3563
|
"patch": {
|
|
3481
3564
|
"summary": "Update an agent",
|
|
3482
|
-
"description": "Admin-only. Updates `selfHosted`, `repos`, `reviewAuthorAllowlist`, `patchAuthorAllowlist`, `restrictSlackToMembers`, `slackId`, `trialExpiresAt`,
|
|
3565
|
+
"description": "Admin-only. Updates `selfHosted`, `repos`, `reviewAuthorAllowlist`, `patchAuthorAllowlist`, `restrictSlackToMembers`, `slackId`, `trialExpiresAt`, `accountId` (platform admin only — 403 for session members; `null` clears it; reconciles the workload of in-cluster agents; does not move historical task-store rows), and/or `podServiceAccountName` (platform admin only — 403 otherwise; `null` clears it; 409 unless SHIPWRIGHT_K8S_AGENT_POD_SERVICE_ACCOUNT_ENABLED is on; 422 for agents with a per-agent federated identity; reconciles the workload so the pod is recreated under the new ServiceAccount). `typeName` and `trialExpiryWarnedAt` are not updatable via this route. `repos` here REPLACES the whole list; for incremental changes use `POST /agents/{id}/repos` (add) and `DELETE /agents/{id}/repos/{owner}/{name}` (remove). Returns the updated agent, including a `warning` field when `restrictSlackToMembers` is set true on an agent with zero members.",
|
|
3483
3566
|
"parameters": [
|
|
3484
3567
|
{
|
|
3485
3568
|
"schema": {
|
|
@@ -3540,6 +3623,26 @@
|
|
|
3540
3623
|
}
|
|
3541
3624
|
}
|
|
3542
3625
|
}
|
|
3626
|
+
},
|
|
3627
|
+
"409": {
|
|
3628
|
+
"description": "podServiceAccountName supplied while the pod ServiceAccount flag is off",
|
|
3629
|
+
"content": {
|
|
3630
|
+
"application/json": {
|
|
3631
|
+
"schema": {
|
|
3632
|
+
"$ref": "#/components/schemas/Error"
|
|
3633
|
+
}
|
|
3634
|
+
}
|
|
3635
|
+
}
|
|
3636
|
+
},
|
|
3637
|
+
"422": {
|
|
3638
|
+
"description": "podServiceAccountName supplied for an agent with a per-agent federated identity",
|
|
3639
|
+
"content": {
|
|
3640
|
+
"application/json": {
|
|
3641
|
+
"schema": {
|
|
3642
|
+
"$ref": "#/components/schemas/Error"
|
|
3643
|
+
}
|
|
3644
|
+
}
|
|
3645
|
+
}
|
|
3543
3646
|
}
|
|
3544
3647
|
}
|
|
3545
3648
|
},
|
package/openapi.platform.json
CHANGED
|
@@ -204,6 +204,12 @@
|
|
|
204
204
|
"typeName": {
|
|
205
205
|
"type": "string"
|
|
206
206
|
},
|
|
207
|
+
"podServiceAccountName": {
|
|
208
|
+
"type": [
|
|
209
|
+
"string",
|
|
210
|
+
"null"
|
|
211
|
+
]
|
|
212
|
+
},
|
|
207
213
|
"accountId": {
|
|
208
214
|
"type": [
|
|
209
215
|
"string",
|
|
@@ -303,6 +309,7 @@
|
|
|
303
309
|
"patchAuthorAllowlist",
|
|
304
310
|
"restrictSlackToMembers",
|
|
305
311
|
"typeName",
|
|
312
|
+
"podServiceAccountName",
|
|
306
313
|
"accountId",
|
|
307
314
|
"createdAt",
|
|
308
315
|
"updatedAt",
|
|
@@ -372,6 +379,15 @@
|
|
|
372
379
|
"minLength": 1,
|
|
373
380
|
"example": "acct_123"
|
|
374
381
|
},
|
|
382
|
+
"podServiceAccountName": {
|
|
383
|
+
"type": [
|
|
384
|
+
"string",
|
|
385
|
+
"null"
|
|
386
|
+
],
|
|
387
|
+
"maxLength": 63,
|
|
388
|
+
"pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$",
|
|
389
|
+
"example": "agent-pod-sa"
|
|
390
|
+
},
|
|
375
391
|
"trialExpiresAt": {
|
|
376
392
|
"type": [
|
|
377
393
|
"string",
|
|
@@ -2826,6 +2842,16 @@
|
|
|
2826
2842
|
"$ref": "#/components/schemas/GitHubInstallation"
|
|
2827
2843
|
}
|
|
2828
2844
|
},
|
|
2845
|
+
"repoAccess": {
|
|
2846
|
+
"type": [
|
|
2847
|
+
"array",
|
|
2848
|
+
"null"
|
|
2849
|
+
],
|
|
2850
|
+
"items": {
|
|
2851
|
+
"$ref": "#/components/schemas/RepoAccessEntry"
|
|
2852
|
+
},
|
|
2853
|
+
"description": "Latest per-repo access probe result; null until a runtime with the repo-access check enabled reports one."
|
|
2854
|
+
},
|
|
2829
2855
|
"createdAt": {
|
|
2830
2856
|
"type": "string",
|
|
2831
2857
|
"format": "date-time",
|
|
@@ -2837,6 +2863,7 @@
|
|
|
2837
2863
|
"agentId",
|
|
2838
2864
|
"reportedAt",
|
|
2839
2865
|
"installations",
|
|
2866
|
+
"repoAccess",
|
|
2840
2867
|
"createdAt"
|
|
2841
2868
|
]
|
|
2842
2869
|
},
|
|
@@ -2877,6 +2904,55 @@
|
|
|
2877
2904
|
],
|
|
2878
2905
|
"additionalProperties": false
|
|
2879
2906
|
},
|
|
2907
|
+
"RepoAccessEntry": {
|
|
2908
|
+
"type": "object",
|
|
2909
|
+
"properties": {
|
|
2910
|
+
"repo": {
|
|
2911
|
+
"type": "string",
|
|
2912
|
+
"minLength": 1,
|
|
2913
|
+
"maxLength": 200,
|
|
2914
|
+
"example": "agent"
|
|
2915
|
+
},
|
|
2916
|
+
"owner": {
|
|
2917
|
+
"type": "string",
|
|
2918
|
+
"minLength": 1,
|
|
2919
|
+
"maxLength": 200,
|
|
2920
|
+
"example": "app-vitals"
|
|
2921
|
+
},
|
|
2922
|
+
"read": {
|
|
2923
|
+
"type": "boolean",
|
|
2924
|
+
"example": true
|
|
2925
|
+
},
|
|
2926
|
+
"write": {
|
|
2927
|
+
"type": "boolean",
|
|
2928
|
+
"example": false
|
|
2929
|
+
},
|
|
2930
|
+
"checkedAt": {
|
|
2931
|
+
"type": "string",
|
|
2932
|
+
"format": "date-time",
|
|
2933
|
+
"example": "2026-01-01T00:00:00.000Z"
|
|
2934
|
+
},
|
|
2935
|
+
"error": {
|
|
2936
|
+
"type": "string",
|
|
2937
|
+
"enum": [
|
|
2938
|
+
"not_found",
|
|
2939
|
+
"forbidden",
|
|
2940
|
+
"rate_limited",
|
|
2941
|
+
"network"
|
|
2942
|
+
],
|
|
2943
|
+
"description": "Why the probe could not read the repo; absent when the probe succeeded.",
|
|
2944
|
+
"example": "not_found"
|
|
2945
|
+
}
|
|
2946
|
+
},
|
|
2947
|
+
"required": [
|
|
2948
|
+
"repo",
|
|
2949
|
+
"owner",
|
|
2950
|
+
"read",
|
|
2951
|
+
"write",
|
|
2952
|
+
"checkedAt"
|
|
2953
|
+
],
|
|
2954
|
+
"additionalProperties": false
|
|
2955
|
+
},
|
|
2880
2956
|
"PutGitHubInstallationsBody": {
|
|
2881
2957
|
"type": "object",
|
|
2882
2958
|
"properties": {
|
|
@@ -2890,6 +2966,13 @@
|
|
|
2890
2966
|
"items": {
|
|
2891
2967
|
"$ref": "#/components/schemas/GitHubInstallation"
|
|
2892
2968
|
}
|
|
2969
|
+
},
|
|
2970
|
+
"repos": {
|
|
2971
|
+
"type": "array",
|
|
2972
|
+
"items": {
|
|
2973
|
+
"$ref": "#/components/schemas/RepoAccessEntry"
|
|
2974
|
+
},
|
|
2975
|
+
"description": "Per-repo access probe result (COS-44.1). Omit to leave the stored result unchanged; send [] to clear it."
|
|
2893
2976
|
}
|
|
2894
2977
|
},
|
|
2895
2978
|
"required": [
|
|
@@ -3307,7 +3390,7 @@
|
|
|
3307
3390
|
},
|
|
3308
3391
|
"patch": {
|
|
3309
3392
|
"summary": "Update an agent",
|
|
3310
|
-
"description": "Admin-only. Updates `selfHosted`, `repos`, `reviewAuthorAllowlist`, `patchAuthorAllowlist`, `restrictSlackToMembers`, `slackId`, `trialExpiresAt`,
|
|
3393
|
+
"description": "Admin-only. Updates `selfHosted`, `repos`, `reviewAuthorAllowlist`, `patchAuthorAllowlist`, `restrictSlackToMembers`, `slackId`, `trialExpiresAt`, `accountId` (platform admin only — 403 for session members; `null` clears it; reconciles the workload of in-cluster agents; does not move historical task-store rows), and/or `podServiceAccountName` (platform admin only — 403 otherwise; `null` clears it; 409 unless SHIPWRIGHT_K8S_AGENT_POD_SERVICE_ACCOUNT_ENABLED is on; 422 for agents with a per-agent federated identity; reconciles the workload so the pod is recreated under the new ServiceAccount). `typeName` and `trialExpiryWarnedAt` are not updatable via this route. `repos` here REPLACES the whole list; for incremental changes use `POST /agents/{id}/repos` (add) and `DELETE /agents/{id}/repos/{owner}/{name}` (remove). Returns the updated agent, including a `warning` field when `restrictSlackToMembers` is set true on an agent with zero members.",
|
|
3311
3394
|
"parameters": [
|
|
3312
3395
|
{
|
|
3313
3396
|
"schema": {
|
|
@@ -3368,6 +3451,26 @@
|
|
|
3368
3451
|
}
|
|
3369
3452
|
}
|
|
3370
3453
|
}
|
|
3454
|
+
},
|
|
3455
|
+
"409": {
|
|
3456
|
+
"description": "podServiceAccountName supplied while the pod ServiceAccount flag is off",
|
|
3457
|
+
"content": {
|
|
3458
|
+
"application/json": {
|
|
3459
|
+
"schema": {
|
|
3460
|
+
"$ref": "#/components/schemas/Error"
|
|
3461
|
+
}
|
|
3462
|
+
}
|
|
3463
|
+
}
|
|
3464
|
+
},
|
|
3465
|
+
"422": {
|
|
3466
|
+
"description": "podServiceAccountName supplied for an agent with a per-agent federated identity",
|
|
3467
|
+
"content": {
|
|
3468
|
+
"application/json": {
|
|
3469
|
+
"schema": {
|
|
3470
|
+
"$ref": "#/components/schemas/Error"
|
|
3471
|
+
}
|
|
3472
|
+
}
|
|
3473
|
+
}
|
|
3371
3474
|
}
|
|
3372
3475
|
}
|
|
3373
3476
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@app-vitals/agent-admin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/app-vitals/agent.git",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@anthropic-ai/sdk": "0.135.0",
|
|
46
|
-
"@app-vitals/agent-lib": "0.
|
|
46
|
+
"@app-vitals/agent-lib": "0.6.0",
|
|
47
47
|
"@hono/zod-openapi": "^1.0.0",
|
|
48
48
|
"@prisma/adapter-pg": "^7.10.0",
|
|
49
49
|
"@prisma/client": "^7.10.0",
|
|
@@ -307,6 +307,57 @@ export type BigIntWithAggregatesFilter<$PrismaModel = never> = {
|
|
|
307
307
|
_max?: Prisma.NestedBigIntFilter<$PrismaModel>
|
|
308
308
|
}
|
|
309
309
|
|
|
310
|
+
export type JsonNullableFilter<$PrismaModel = never> =
|
|
311
|
+
| Prisma.PatchUndefined<
|
|
312
|
+
Prisma.Either<Required<JsonNullableFilterBase<$PrismaModel>>, Exclude<keyof Required<JsonNullableFilterBase<$PrismaModel>>, 'path'>>,
|
|
313
|
+
Required<JsonNullableFilterBase<$PrismaModel>>
|
|
314
|
+
>
|
|
315
|
+
| Prisma.OptionalFlat<Omit<Required<JsonNullableFilterBase<$PrismaModel>>, 'path'>>
|
|
316
|
+
|
|
317
|
+
export type JsonNullableFilterBase<$PrismaModel = never> = {
|
|
318
|
+
equals?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter
|
|
319
|
+
path?: string[]
|
|
320
|
+
mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel>
|
|
321
|
+
string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
322
|
+
string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
323
|
+
string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
324
|
+
array_starts_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null
|
|
325
|
+
array_ends_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null
|
|
326
|
+
array_contains?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null
|
|
327
|
+
lt?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>
|
|
328
|
+
lte?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>
|
|
329
|
+
gt?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>
|
|
330
|
+
gte?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>
|
|
331
|
+
not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
export type JsonNullableWithAggregatesFilter<$PrismaModel = never> =
|
|
335
|
+
| Prisma.PatchUndefined<
|
|
336
|
+
Prisma.Either<Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>, Exclude<keyof Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>, 'path'>>,
|
|
337
|
+
Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>
|
|
338
|
+
>
|
|
339
|
+
| Prisma.OptionalFlat<Omit<Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>, 'path'>>
|
|
340
|
+
|
|
341
|
+
export type JsonNullableWithAggregatesFilterBase<$PrismaModel = never> = {
|
|
342
|
+
equals?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter
|
|
343
|
+
path?: string[]
|
|
344
|
+
mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel>
|
|
345
|
+
string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
346
|
+
string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
347
|
+
string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
348
|
+
array_starts_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null
|
|
349
|
+
array_ends_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null
|
|
350
|
+
array_contains?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null
|
|
351
|
+
lt?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>
|
|
352
|
+
lte?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>
|
|
353
|
+
gt?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>
|
|
354
|
+
gte?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>
|
|
355
|
+
not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter
|
|
356
|
+
_count?: Prisma.NestedIntNullableFilter<$PrismaModel>
|
|
357
|
+
_min?: Prisma.NestedJsonNullableFilter<$PrismaModel>
|
|
358
|
+
_max?: Prisma.NestedJsonNullableFilter<$PrismaModel>
|
|
359
|
+
}
|
|
360
|
+
|
|
310
361
|
export type NestedStringFilter<$PrismaModel = never> = {
|
|
311
362
|
equals?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
312
363
|
in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>
|
|
@@ -575,4 +626,28 @@ export type NestedBigIntWithAggregatesFilter<$PrismaModel = never> = {
|
|
|
575
626
|
_max?: Prisma.NestedBigIntFilter<$PrismaModel>
|
|
576
627
|
}
|
|
577
628
|
|
|
629
|
+
export type NestedJsonNullableFilter<$PrismaModel = never> =
|
|
630
|
+
| Prisma.PatchUndefined<
|
|
631
|
+
Prisma.Either<Required<NestedJsonNullableFilterBase<$PrismaModel>>, Exclude<keyof Required<NestedJsonNullableFilterBase<$PrismaModel>>, 'path'>>,
|
|
632
|
+
Required<NestedJsonNullableFilterBase<$PrismaModel>>
|
|
633
|
+
>
|
|
634
|
+
| Prisma.OptionalFlat<Omit<Required<NestedJsonNullableFilterBase<$PrismaModel>>, 'path'>>
|
|
635
|
+
|
|
636
|
+
export type NestedJsonNullableFilterBase<$PrismaModel = never> = {
|
|
637
|
+
equals?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter
|
|
638
|
+
path?: string[]
|
|
639
|
+
mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel>
|
|
640
|
+
string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
641
|
+
string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
642
|
+
string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
643
|
+
array_starts_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null
|
|
644
|
+
array_ends_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null
|
|
645
|
+
array_contains?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null
|
|
646
|
+
lt?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>
|
|
647
|
+
lte?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>
|
|
648
|
+
gt?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>
|
|
649
|
+
gte?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>
|
|
650
|
+
not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter
|
|
651
|
+
}
|
|
652
|
+
|
|
578
653
|
|