alchemy 0.50.0 → 0.51.1
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/lib/apply.js +10 -9
- package/lib/apply.js.map +1 -1
- package/lib/aws/control/types.d.ts +4 -4
- package/lib/cloudflare/api-gateway-operation.d.ts +141 -0
- package/lib/cloudflare/api-gateway-operation.d.ts.map +1 -0
- package/lib/cloudflare/api-gateway-operation.js +153 -0
- package/lib/cloudflare/api-gateway-operation.js.map +1 -0
- package/lib/cloudflare/api-mitigation.d.ts +19 -0
- package/lib/cloudflare/api-mitigation.d.ts.map +1 -0
- package/lib/cloudflare/api-mitigation.js +1 -0
- package/lib/cloudflare/api-mitigation.js.map +1 -0
- package/lib/cloudflare/api-schema.d.ts +137 -0
- package/lib/cloudflare/api-schema.d.ts.map +1 -0
- package/lib/cloudflare/api-schema.js +197 -0
- package/lib/cloudflare/api-schema.js.map +1 -0
- package/lib/cloudflare/api-shield.d.ts +366 -0
- package/lib/cloudflare/api-shield.d.ts.map +1 -0
- package/lib/cloudflare/api-shield.js +427 -0
- package/lib/cloudflare/api-shield.js.map +1 -0
- package/lib/cloudflare/certificate-pack.d.ts +1 -1
- package/lib/cloudflare/certificate-pack.d.ts.map +1 -1
- package/lib/cloudflare/certificate-pack.js +18 -88
- package/lib/cloudflare/certificate-pack.js.map +1 -1
- package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
- package/lib/cloudflare/compatibility-date.gen.js +1 -1
- package/lib/cloudflare/index.d.ts +3 -0
- package/lib/cloudflare/index.d.ts.map +1 -1
- package/lib/cloudflare/index.js +3 -0
- package/lib/cloudflare/index.js.map +1 -1
- package/lib/cloudflare/zone.d.ts +12 -0
- package/lib/cloudflare/zone.d.ts.map +1 -1
- package/lib/cloudflare/zone.js +47 -0
- package/lib/cloudflare/zone.js.map +1 -1
- package/lib/destroy.d.ts.map +1 -1
- package/lib/destroy.js +26 -18
- package/lib/destroy.js.map +1 -1
- package/lib/scope.d.ts.map +1 -1
- package/lib/scope.js +2 -2
- package/lib/scope.js.map +1 -1
- package/package.json +2 -1
- package/src/apply.ts +11 -12
- package/src/aws/control/types.ts +4 -4
- package/src/cloudflare/api-gateway-operation.ts +340 -0
- package/src/cloudflare/api-mitigation.ts +22 -0
- package/src/cloudflare/api-schema.ts +364 -0
- package/src/cloudflare/api-shield.ts +676 -0
- package/src/cloudflare/certificate-pack.ts +28 -152
- package/src/cloudflare/compatibility-date.gen.ts +1 -1
- package/src/cloudflare/index.ts +3 -0
- package/src/cloudflare/zone.ts +75 -0
- package/src/destroy.ts +26 -20
- package/src/scope.ts +3 -3
- package/templates/tanstack-start/package.json +3 -3
- package/templates/tanstack-start/vite.config.ts +2 -6
package/lib/apply.js
CHANGED
|
@@ -164,6 +164,14 @@ async function _apply(resource, props, options) {
|
|
|
164
164
|
},
|
|
165
165
|
});
|
|
166
166
|
}
|
|
167
|
+
else {
|
|
168
|
+
const pendingDeletions = (await scope.get("pendingDeletions")) ?? [];
|
|
169
|
+
pendingDeletions.push({
|
|
170
|
+
resource: oldOutput,
|
|
171
|
+
oldProps: state.oldProps,
|
|
172
|
+
});
|
|
173
|
+
await scope.set("pendingDeletions", pendingDeletions);
|
|
174
|
+
}
|
|
167
175
|
output = await alchemy.run(resource[ResourceID], { isResource: true, parent: scope }, async () => provider.handler.bind(context({
|
|
168
176
|
scope,
|
|
169
177
|
phase: "create",
|
|
@@ -172,20 +180,12 @@ async function _apply(resource, props, options) {
|
|
|
172
180
|
fqn: resource[ResourceFQN],
|
|
173
181
|
seq: resource[ResourceSeq],
|
|
174
182
|
props: state.props,
|
|
175
|
-
state,
|
|
183
|
+
state: state,
|
|
176
184
|
isReplacement: true,
|
|
177
185
|
replace: () => {
|
|
178
186
|
throw new Error(`Resource ${resource[ResourceKind]} ${resource[ResourceFQN]} cannot be replaced in create phase.`);
|
|
179
187
|
},
|
|
180
188
|
}))(resource[ResourceID], props));
|
|
181
|
-
if (!error.force) {
|
|
182
|
-
const pendingDeletions = (await scope.get("pendingDeletions")) ?? [];
|
|
183
|
-
pendingDeletions.push({
|
|
184
|
-
resource: oldOutput,
|
|
185
|
-
oldProps: state.oldProps,
|
|
186
|
-
});
|
|
187
|
-
await scope.set("pendingDeletions", pendingDeletions);
|
|
188
|
-
}
|
|
189
189
|
}
|
|
190
190
|
else {
|
|
191
191
|
throw error;
|
|
@@ -208,6 +208,7 @@ async function _apply(resource, props, options) {
|
|
|
208
208
|
elapsed: performance.now() - start,
|
|
209
209
|
replaced: isReplaced,
|
|
210
210
|
});
|
|
211
|
+
state = (await scope.state.get(resource[ResourceID]));
|
|
211
212
|
await scope.state.set(resource[ResourceID], {
|
|
212
213
|
kind: resource[ResourceKind],
|
|
213
214
|
id: resource[ResourceID],
|
package/lib/apply.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../src/apply.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../src/apply.ts"],"names":[],"mappings":"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"}
|
|
@@ -9243,7 +9243,7 @@ declare namespace AWS {
|
|
|
9243
9243
|
function SchedulingPolicy(id: string, props: SchedulingPolicyProps): Promise<SchedulingPolicy>;
|
|
9244
9244
|
}
|
|
9245
9245
|
namespace Bedrock {
|
|
9246
|
-
interface
|
|
9246
|
+
interface ApiSchema {
|
|
9247
9247
|
/** http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-apischema.html#cfn-bedrock-agent-apischema-s3 */
|
|
9248
9248
|
S3?: S3Identifier;
|
|
9249
9249
|
/** http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-apischema.html#cfn-bedrock-agent-apischema-payload */
|
|
@@ -9259,7 +9259,7 @@ declare namespace AWS {
|
|
|
9259
9259
|
/** http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html#cfn-bedrock-agent-agentactiongroup-description */
|
|
9260
9260
|
Description?: string;
|
|
9261
9261
|
/** http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html#cfn-bedrock-agent-agentactiongroup-apischema */
|
|
9262
|
-
ApiSchema?:
|
|
9262
|
+
ApiSchema?: ApiSchema;
|
|
9263
9263
|
/** http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html#cfn-bedrock-agent-agentactiongroup-functionschema */
|
|
9264
9264
|
FunctionSchema?: FunctionSchema;
|
|
9265
9265
|
/** http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html#cfn-bedrock-agent-agentactiongroup-skipresourceinusecheckondelete */
|
|
@@ -57792,7 +57792,7 @@ declare namespace AWS {
|
|
|
57792
57792
|
/** http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-qbusiness-index-textdocumentstatistics.html#cfn-qbusiness-index-textdocumentstatistics-indexedtextdocumentcount */
|
|
57793
57793
|
IndexedTextDocumentCount?: number;
|
|
57794
57794
|
}
|
|
57795
|
-
interface
|
|
57795
|
+
interface ApiSchema {
|
|
57796
57796
|
/** http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-qbusiness-plugin-apischema.html#cfn-qbusiness-plugin-apischema-s3 */
|
|
57797
57797
|
S3?: S3;
|
|
57798
57798
|
/** http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-qbusiness-plugin-apischema.html#cfn-qbusiness-plugin-apischema-payload */
|
|
@@ -57808,7 +57808,7 @@ declare namespace AWS {
|
|
|
57808
57808
|
/** http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-qbusiness-plugin-custompluginconfiguration.html#cfn-qbusiness-plugin-custompluginconfiguration-description */
|
|
57809
57809
|
Description: string;
|
|
57810
57810
|
/** http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-qbusiness-plugin-custompluginconfiguration.html#cfn-qbusiness-plugin-custompluginconfiguration-apischema */
|
|
57811
|
-
ApiSchema:
|
|
57811
|
+
ApiSchema: ApiSchema;
|
|
57812
57812
|
/** http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-qbusiness-plugin-custompluginconfiguration.html#cfn-qbusiness-plugin-custompluginconfiguration-apischematype */
|
|
57813
57813
|
ApiSchemaType: string;
|
|
57814
57814
|
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import type { Context } from "../context.ts";
|
|
2
|
+
import { Resource } from "../resource.ts";
|
|
3
|
+
import type { APIMitigation } from "./api-mitigation.ts";
|
|
4
|
+
import { type CloudflareApi, type CloudflareApiOptions } from "./api.ts";
|
|
5
|
+
import type { Zone } from "./zone.ts";
|
|
6
|
+
/**
|
|
7
|
+
* HTTP methods supported by API Gateway
|
|
8
|
+
*/
|
|
9
|
+
export type HTTPMethod = "get" | "post" | "put" | "patch" | "delete" | "head" | "options" | "trace";
|
|
10
|
+
/**
|
|
11
|
+
* Properties for creating or updating an API Operation
|
|
12
|
+
*/
|
|
13
|
+
export interface APIGatewayOperationProps extends CloudflareApiOptions {
|
|
14
|
+
/**
|
|
15
|
+
* The zone this operation belongs to
|
|
16
|
+
*/
|
|
17
|
+
zone: string | Zone;
|
|
18
|
+
/**
|
|
19
|
+
* The API endpoint path (can contain path variables like /users/{id})
|
|
20
|
+
*/
|
|
21
|
+
endpoint: string;
|
|
22
|
+
/**
|
|
23
|
+
* The host for this operation
|
|
24
|
+
*/
|
|
25
|
+
host: string;
|
|
26
|
+
/**
|
|
27
|
+
* The HTTP method (GET, POST, PUT, DELETE, etc.)
|
|
28
|
+
*/
|
|
29
|
+
method: string;
|
|
30
|
+
/**
|
|
31
|
+
* Mitigation action for this operation
|
|
32
|
+
* @default "none"
|
|
33
|
+
*/
|
|
34
|
+
mitigation?: APIMitigation;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* API Operation output
|
|
38
|
+
*/
|
|
39
|
+
export interface APIGatewayOperation extends Resource<"cloudflare::APIGatewayOperation"> {
|
|
40
|
+
/**
|
|
41
|
+
* Zone ID
|
|
42
|
+
*/
|
|
43
|
+
zoneId: string;
|
|
44
|
+
/**
|
|
45
|
+
* Zone name
|
|
46
|
+
*/
|
|
47
|
+
zoneName: string;
|
|
48
|
+
/**
|
|
49
|
+
* Operation ID assigned by Cloudflare
|
|
50
|
+
*/
|
|
51
|
+
operationId: string;
|
|
52
|
+
/**
|
|
53
|
+
* The API endpoint path
|
|
54
|
+
*/
|
|
55
|
+
endpoint: string;
|
|
56
|
+
/**
|
|
57
|
+
* The host for this operation
|
|
58
|
+
*/
|
|
59
|
+
host: string;
|
|
60
|
+
/**
|
|
61
|
+
* The HTTP method
|
|
62
|
+
*/
|
|
63
|
+
method: string;
|
|
64
|
+
/**
|
|
65
|
+
* The mitigation action for this operation
|
|
66
|
+
*/
|
|
67
|
+
action: APIMitigation;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Cloudflare API Gateway Operation manages individual API endpoints that can be
|
|
71
|
+
* monitored, secured, and configured through Cloudflare's API Shield.
|
|
72
|
+
*
|
|
73
|
+
* Operations are the building blocks for API management, representing specific
|
|
74
|
+
* HTTP method + endpoint + host combinations that your API exposes.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ## Basic API operation
|
|
78
|
+
*
|
|
79
|
+
* Create a simple GET endpoint for user retrieval
|
|
80
|
+
*
|
|
81
|
+
* const getUserOp = await APIGatewayOperation("get-users", {
|
|
82
|
+
* zone: myZone,
|
|
83
|
+
* endpoint: "/users",
|
|
84
|
+
* host: "api.example.com",
|
|
85
|
+
* method: "GET"
|
|
86
|
+
* });
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ## API operation with path parameters
|
|
90
|
+
*
|
|
91
|
+
* Create an operation that includes path variables
|
|
92
|
+
*
|
|
93
|
+
* const getUserByIdOp = await APIGatewayOperation("get-user-by-id", {
|
|
94
|
+
* zone: "api.example.com",
|
|
95
|
+
* endpoint: "/users/{id}",
|
|
96
|
+
* host: "api.example.com",
|
|
97
|
+
* method: "GET"
|
|
98
|
+
* });
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ## RESTful CRUD operations
|
|
102
|
+
*
|
|
103
|
+
* Create a complete set of CRUD operations for a resource
|
|
104
|
+
*
|
|
105
|
+
* const createUserOp = await APIGatewayOperation("create-user", {
|
|
106
|
+
* zone: myZone,
|
|
107
|
+
* endpoint: "/users",
|
|
108
|
+
* host: "api.example.com",
|
|
109
|
+
* method: "POST"
|
|
110
|
+
* });
|
|
111
|
+
*
|
|
112
|
+
* const updateUserOp = await APIGatewayOperation("update-user", {
|
|
113
|
+
* zone: myZone,
|
|
114
|
+
* endpoint: "/users/{id}",
|
|
115
|
+
* host: "api.example.com",
|
|
116
|
+
* method: "PUT"
|
|
117
|
+
* });
|
|
118
|
+
*
|
|
119
|
+
* const deleteUserOp = await APIGatewayOperation("delete-user", {
|
|
120
|
+
* zone: myZone,
|
|
121
|
+
* endpoint: "/users/{id}",
|
|
122
|
+
* host: "api.example.com",
|
|
123
|
+
* method: "DELETE"
|
|
124
|
+
* });
|
|
125
|
+
*
|
|
126
|
+
* @see https://developers.cloudflare.com/api/resources/api_gateway/subresources/operations/
|
|
127
|
+
* @see https://developers.cloudflare.com/api-shield/management-and-monitoring/endpoint-management/
|
|
128
|
+
*/
|
|
129
|
+
export declare const APIGatewayOperation: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<APIGatewayOperation>, _id: string, props: APIGatewayOperationProps) => Promise<APIGatewayOperation>);
|
|
130
|
+
export interface CloudflareOperation {
|
|
131
|
+
operation_id: string;
|
|
132
|
+
method: string;
|
|
133
|
+
host: string;
|
|
134
|
+
endpoint: string;
|
|
135
|
+
}
|
|
136
|
+
export declare function getOperations(api: CloudflareApi, zoneId: string): Promise<CloudflareOperation[]>;
|
|
137
|
+
export declare function getOperationSchemaValidationSetting(api: CloudflareApi, zoneId: string, operationId: string): Promise<{
|
|
138
|
+
mitigation_action: APIMitigation;
|
|
139
|
+
operation_id: string;
|
|
140
|
+
}>;
|
|
141
|
+
//# sourceMappingURL=api-gateway-operation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-gateway-operation.d.ts","sourceRoot":"","sources":["../../src/cloudflare/api-gateway-operation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAC1B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,KAAK,GACL,MAAM,GACN,KAAK,GACL,OAAO,GACP,QAAQ,GACR,MAAM,GACN,SAAS,GACT,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,oBAAoB;IACpE;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBACf,SAAQ,QAAQ,CAAC,iCAAiC,CAAC;IACnD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,eAAO,MAAM,mBAAmB,yFAGtB,OAAO,CAAC,mBAAmB,CAAC,OAC7B,MAAM,SACJ,wBAAwB,KAC9B,OAAO,CAAC,mBAAmB,CAAC,CAoDhC,CAAC;AA+EF,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAQhC;AAED,wBAAsB,mCAAmC,CACvD,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM;uBAiBI,aAAa;kBAClB,MAAM;GAKzB"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { Resource } from "../resource.js";
|
|
2
|
+
import { handleApiError } from "./api-error.js";
|
|
3
|
+
import { createCloudflareApi, } from "./api.js";
|
|
4
|
+
/**
|
|
5
|
+
* Cloudflare API Gateway Operation manages individual API endpoints that can be
|
|
6
|
+
* monitored, secured, and configured through Cloudflare's API Shield.
|
|
7
|
+
*
|
|
8
|
+
* Operations are the building blocks for API management, representing specific
|
|
9
|
+
* HTTP method + endpoint + host combinations that your API exposes.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ## Basic API operation
|
|
13
|
+
*
|
|
14
|
+
* Create a simple GET endpoint for user retrieval
|
|
15
|
+
*
|
|
16
|
+
* const getUserOp = await APIGatewayOperation("get-users", {
|
|
17
|
+
* zone: myZone,
|
|
18
|
+
* endpoint: "/users",
|
|
19
|
+
* host: "api.example.com",
|
|
20
|
+
* method: "GET"
|
|
21
|
+
* });
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ## API operation with path parameters
|
|
25
|
+
*
|
|
26
|
+
* Create an operation that includes path variables
|
|
27
|
+
*
|
|
28
|
+
* const getUserByIdOp = await APIGatewayOperation("get-user-by-id", {
|
|
29
|
+
* zone: "api.example.com",
|
|
30
|
+
* endpoint: "/users/{id}",
|
|
31
|
+
* host: "api.example.com",
|
|
32
|
+
* method: "GET"
|
|
33
|
+
* });
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ## RESTful CRUD operations
|
|
37
|
+
*
|
|
38
|
+
* Create a complete set of CRUD operations for a resource
|
|
39
|
+
*
|
|
40
|
+
* const createUserOp = await APIGatewayOperation("create-user", {
|
|
41
|
+
* zone: myZone,
|
|
42
|
+
* endpoint: "/users",
|
|
43
|
+
* host: "api.example.com",
|
|
44
|
+
* method: "POST"
|
|
45
|
+
* });
|
|
46
|
+
*
|
|
47
|
+
* const updateUserOp = await APIGatewayOperation("update-user", {
|
|
48
|
+
* zone: myZone,
|
|
49
|
+
* endpoint: "/users/{id}",
|
|
50
|
+
* host: "api.example.com",
|
|
51
|
+
* method: "PUT"
|
|
52
|
+
* });
|
|
53
|
+
*
|
|
54
|
+
* const deleteUserOp = await APIGatewayOperation("delete-user", {
|
|
55
|
+
* zone: myZone,
|
|
56
|
+
* endpoint: "/users/{id}",
|
|
57
|
+
* host: "api.example.com",
|
|
58
|
+
* method: "DELETE"
|
|
59
|
+
* });
|
|
60
|
+
*
|
|
61
|
+
* @see https://developers.cloudflare.com/api/resources/api_gateway/subresources/operations/
|
|
62
|
+
* @see https://developers.cloudflare.com/api-shield/management-and-monitoring/endpoint-management/
|
|
63
|
+
*/
|
|
64
|
+
export const APIGatewayOperation = Resource("cloudflare::APIGatewayOperation", async function (_id, props) {
|
|
65
|
+
const api = await createCloudflareApi(props);
|
|
66
|
+
// Resolve zone ID and name
|
|
67
|
+
const zoneId = typeof props.zone === "string" ? props.zone : props.zone.id;
|
|
68
|
+
const zoneName = typeof props.zone === "string" ? props.zone : props.zone.name;
|
|
69
|
+
if (this.phase === "delete") {
|
|
70
|
+
if (this.output?.operationId) {
|
|
71
|
+
await deleteOperation(api, zoneId, this.output.operationId);
|
|
72
|
+
}
|
|
73
|
+
return this.destroy();
|
|
74
|
+
}
|
|
75
|
+
let operationId;
|
|
76
|
+
if (this.phase === "update") {
|
|
77
|
+
if (props.endpoint !== this.output?.endpoint ||
|
|
78
|
+
props.host !== this.output?.host ||
|
|
79
|
+
props.method !== this.output?.method) {
|
|
80
|
+
// delete and then re-create (cloudflare doesn't allow updating these properties)
|
|
81
|
+
this.replace(true);
|
|
82
|
+
}
|
|
83
|
+
if (props.mitigation !== this.output?.action) {
|
|
84
|
+
// we can update the mitigation action
|
|
85
|
+
await updateOperationSettings(api, zoneId, this.output.operationId, {
|
|
86
|
+
mitigation_action: props.mitigation ?? null,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
operationId = this.output.operationId;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
const operation = await createOperation(api, zoneId, props);
|
|
93
|
+
operationId = operation.operation_id;
|
|
94
|
+
if (props.mitigation) {
|
|
95
|
+
await updateOperationSettings(api, zoneId, operationId, {
|
|
96
|
+
mitigation_action: props.mitigation ?? "none",
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return this({
|
|
101
|
+
zoneId,
|
|
102
|
+
zoneName,
|
|
103
|
+
operationId,
|
|
104
|
+
endpoint: props.endpoint,
|
|
105
|
+
host: props.host,
|
|
106
|
+
method: props.method.toUpperCase(),
|
|
107
|
+
action: props.mitigation ?? null,
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
async function createOperation(api, zoneId, props) {
|
|
111
|
+
// Create the operation
|
|
112
|
+
const response = await api.post(`/zones/${zoneId}/api_gateway/operations/item`, {
|
|
113
|
+
endpoint: props.endpoint,
|
|
114
|
+
host: props.host,
|
|
115
|
+
method: props.method.toUpperCase(),
|
|
116
|
+
});
|
|
117
|
+
if (!response.ok) {
|
|
118
|
+
await handleApiError(response, "creating", "operation", `${props.method} ${props.endpoint}`);
|
|
119
|
+
}
|
|
120
|
+
const data = (await response.json());
|
|
121
|
+
return data.result;
|
|
122
|
+
}
|
|
123
|
+
async function deleteOperation(api, zoneId, operationId) {
|
|
124
|
+
const deleteResponse = await api.delete(`/zones/${zoneId}/api_gateway/operations/${operationId}`);
|
|
125
|
+
if (!deleteResponse.ok && deleteResponse.status !== 404) {
|
|
126
|
+
await handleApiError(deleteResponse, "deleting", "operation", operationId);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Update validation settings for a specific operation
|
|
131
|
+
*/
|
|
132
|
+
async function updateOperationSettings(api, zoneId, operationId, params) {
|
|
133
|
+
const response = await api.put(`/zones/${zoneId}/schema_validation/settings/operations/${operationId}`, params);
|
|
134
|
+
if (!response.ok) {
|
|
135
|
+
await handleApiError(response, "updating", "operation settings", operationId);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
export async function getOperations(api, zoneId) {
|
|
139
|
+
const response = await api.get(`/zones/${zoneId}/api_gateway/operations`);
|
|
140
|
+
if (!response.ok) {
|
|
141
|
+
await handleApiError(response, "getting", "operations");
|
|
142
|
+
}
|
|
143
|
+
return (await response.json()).result;
|
|
144
|
+
}
|
|
145
|
+
export async function getOperationSchemaValidationSetting(api, zoneId, operationId) {
|
|
146
|
+
const response = await api.get(`/zones/${zoneId}/schema_validation/settings/operations/${operationId}`);
|
|
147
|
+
if (!response.ok) {
|
|
148
|
+
await handleApiError(response, "getting", "operation mitigation status", operationId);
|
|
149
|
+
}
|
|
150
|
+
const data = (await response.json());
|
|
151
|
+
return data.result;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=api-gateway-operation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-gateway-operation.js","sourceRoot":"","sources":["../../src/cloudflare/api-gateway-operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from "openapi-types";
|
|
2
|
+
/**
|
|
3
|
+
* Specifies the mitigation action to apply when a request does not conform to
|
|
4
|
+
* the schema for this operation:
|
|
5
|
+
* - `"log"`: Log the request.
|
|
6
|
+
* - `"block"`: Deny access to the site.
|
|
7
|
+
* - `"none"`: Skip mitigation for this operation.
|
|
8
|
+
* - `null`: Clear any mitigation action.
|
|
9
|
+
*/
|
|
10
|
+
export type APIMitigation = "none" | "log" | "block" | null;
|
|
11
|
+
/**
|
|
12
|
+
* Mitigation actions for a given API schema.
|
|
13
|
+
*/
|
|
14
|
+
export type APIMitigations<S extends OpenAPIV3.Document> = {
|
|
15
|
+
[path in keyof S["paths"]]?: APIMitigation | {
|
|
16
|
+
[method in keyof S["paths"][path]]?: APIMitigation;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=api-mitigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-mitigation.d.ts","sourceRoot":"","sources":["../../src/cloudflare/api-mitigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC;AAE5D;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,SAAS,CAAC,QAAQ,IAAI;KACxD,IAAI,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EACvB,aAAa,GACb;SACG,MAAM,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa;KACnD;CACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=api-mitigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-mitigation.js","sourceRoot":"","sources":["../../src/cloudflare/api-mitigation.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from "openapi-types";
|
|
2
|
+
import type { Context } from "../context.ts";
|
|
3
|
+
import { Resource } from "../resource.ts";
|
|
4
|
+
import { type CloudflareApi, type CloudflareApiOptions } from "./api.ts";
|
|
5
|
+
import type { Zone } from "./zone.ts";
|
|
6
|
+
/**
|
|
7
|
+
* Properties for creating or updating a Schema
|
|
8
|
+
*/
|
|
9
|
+
export interface APISchemaProps<S extends OpenAPIV3.Document> extends CloudflareApiOptions {
|
|
10
|
+
/**
|
|
11
|
+
* The zone to upload the schema to
|
|
12
|
+
*/
|
|
13
|
+
zone: string | Zone;
|
|
14
|
+
/**
|
|
15
|
+
* OpenAPI v3.0.x schema content (YAML string, JSON string, or OpenAPI object)
|
|
16
|
+
* Provide either this or schemaFile
|
|
17
|
+
*
|
|
18
|
+
* Note: Cloudflare only supports OpenAPI v3.0.x, not v3.1
|
|
19
|
+
*/
|
|
20
|
+
schema: S;
|
|
21
|
+
/**
|
|
22
|
+
* Name for the schema
|
|
23
|
+
* @default resource id
|
|
24
|
+
*/
|
|
25
|
+
name?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Enable validation immediately after upload
|
|
28
|
+
*
|
|
29
|
+
* Warning: will trigger a replace when disabling validation.
|
|
30
|
+
*
|
|
31
|
+
* @default true
|
|
32
|
+
*/
|
|
33
|
+
enabled?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* APISchema resource attributes.
|
|
37
|
+
*/
|
|
38
|
+
export interface APISchema<S extends OpenAPIV3.Document = OpenAPIV3.Document> extends Resource<"cloudflare::APISchema"> {
|
|
39
|
+
/**
|
|
40
|
+
* Schema ID
|
|
41
|
+
*/
|
|
42
|
+
id: string;
|
|
43
|
+
/**
|
|
44
|
+
* Name for the schema
|
|
45
|
+
*/
|
|
46
|
+
name: string;
|
|
47
|
+
/**
|
|
48
|
+
* The API Schema
|
|
49
|
+
*/
|
|
50
|
+
schema: S;
|
|
51
|
+
/**
|
|
52
|
+
* Source of the schema
|
|
53
|
+
*/
|
|
54
|
+
source: string;
|
|
55
|
+
/**
|
|
56
|
+
* Whether validation is enabled
|
|
57
|
+
*/
|
|
58
|
+
enabled: boolean;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Cloudflare API Gateway Schema manages OpenAPI v3 schemas for API validation.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ## Basic schema upload with inline YAML
|
|
65
|
+
*
|
|
66
|
+
* const apiSchema = await APISchema("my-api-schema", {
|
|
67
|
+
* zone: myZone,
|
|
68
|
+
* name: "my-api-v1"
|
|
69
|
+
* schema: `
|
|
70
|
+
* openapi: 3.0.0
|
|
71
|
+
* info:
|
|
72
|
+
* title: My API
|
|
73
|
+
* version: 1.0.0
|
|
74
|
+
* servers:
|
|
75
|
+
* - url: https://api.example.com
|
|
76
|
+
* paths:
|
|
77
|
+
* /users:
|
|
78
|
+
* get:
|
|
79
|
+
* operationId: getUsers
|
|
80
|
+
* responses:
|
|
81
|
+
* '200':
|
|
82
|
+
* description: Success
|
|
83
|
+
* `,
|
|
84
|
+
* });
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ## Schema upload from file
|
|
88
|
+
*
|
|
89
|
+
* const fileSchema = await APISchema("api-schema-from-file", {
|
|
90
|
+
* zone: "example.com",
|
|
91
|
+
* schemaFile: "./openapi.yaml",
|
|
92
|
+
* name: "production-api-v2",
|
|
93
|
+
* enabled: false // Upload but don't enable validation yet
|
|
94
|
+
* });
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ## Schema with typed OpenAPI object
|
|
98
|
+
*
|
|
99
|
+
* import type { OpenAPIV3 } from "openapi-types";
|
|
100
|
+
*
|
|
101
|
+
* const typedSchema: OpenAPIV3.Document = {
|
|
102
|
+
* openapi: "3.0.0",
|
|
103
|
+
* info: { title: "Typed API", version: "1.0.0" },
|
|
104
|
+
* paths: {
|
|
105
|
+
* "/health": {
|
|
106
|
+
* get: {
|
|
107
|
+
* operationId: "healthCheck",
|
|
108
|
+
* responses: { "200": { description: "OK" } }
|
|
109
|
+
* }
|
|
110
|
+
* }
|
|
111
|
+
* }
|
|
112
|
+
* };
|
|
113
|
+
*
|
|
114
|
+
* const schema = await APISchema("typed-schema", {
|
|
115
|
+
* zone: myZone,
|
|
116
|
+
* schema: typedSchema
|
|
117
|
+
* });
|
|
118
|
+
*/
|
|
119
|
+
export declare const APISchema: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | (<S extends OpenAPIV3.Document>(this: Context<APISchema<S>>, id: string, props: APISchemaProps<S>) => Promise<APISchema<S>>);
|
|
120
|
+
interface CloudflareSchemaDetails {
|
|
121
|
+
id: string;
|
|
122
|
+
name: string;
|
|
123
|
+
source: string;
|
|
124
|
+
validationEnabled: boolean;
|
|
125
|
+
createdAt: string;
|
|
126
|
+
}
|
|
127
|
+
export declare function deleteSchema(api: CloudflareApi, zoneId: string, schemaId: string): Promise<void>;
|
|
128
|
+
/**
|
|
129
|
+
* Get schema details
|
|
130
|
+
*/
|
|
131
|
+
export declare function getSchema(api: CloudflareApi, zoneId: string, schemaId: string): Promise<CloudflareSchemaDetails | null>;
|
|
132
|
+
/**
|
|
133
|
+
* List all schemas in a zone
|
|
134
|
+
*/
|
|
135
|
+
export declare function listSchemas(api: CloudflareApi, zoneId: string): Promise<CloudflareSchemaDetails[]>;
|
|
136
|
+
export {};
|
|
137
|
+
//# sourceMappingURL=api-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-schema.d.ts","sourceRoot":"","sources":["../../src/cloudflare/api-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAC1B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGtC;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,SAAS,CAAC,QAAQ,CAC1D,SAAQ,oBAAoB;IAC5B;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpB;;;;;OAKG;IACH,MAAM,EAAE,CAAC,CAAC;IAEV;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAC1E,SAAQ,QAAQ,CAAC,uBAAuB,CAAC;IACzC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,CAAC,CAAC;IAEV;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,SAAS,mFACpB,CAAC,SAAS,SAAS,CAAC,QAAQ,QACtB,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,SAAS,cAAc,CAAC,CAAC,CAAC,KAAG,OAAO,CAC3E,SAAS,CAAC,CAAC,CAAC,CACb,CAoDC,CAAC;AAIH,UAAU,uBAAuB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AA6ED,wBAAsB,YAAY,CAChC,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAqBzC;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAkBpC"}
|