@webda/azure 0.0.0-stage → 4.0.0-beta.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/LICENSE +166 -0
  2. package/README.md +248 -2
  3. package/lib/auth.d.ts +30 -0
  4. package/lib/auth.d.ts.map +1 -0
  5. package/lib/auth.js +70 -0
  6. package/lib/auth.js.map +1 -0
  7. package/lib/deployers/arm.service.d.ts +108 -0
  8. package/lib/deployers/arm.service.d.ts.map +1 -0
  9. package/lib/deployers/arm.service.js +280 -0
  10. package/lib/deployers/arm.service.js.map +1 -0
  11. package/lib/deployers/containerapps.service.d.ts +156 -0
  12. package/lib/deployers/containerapps.service.d.ts.map +1 -0
  13. package/lib/deployers/containerapps.service.js +455 -0
  14. package/lib/deployers/containerapps.service.js.map +1 -0
  15. package/lib/deployers/functions-entrypoint.d.ts +48 -0
  16. package/lib/deployers/functions-entrypoint.d.ts.map +1 -0
  17. package/lib/deployers/functions-entrypoint.js +78 -0
  18. package/lib/deployers/functions-entrypoint.js.map +1 -0
  19. package/lib/deployers/functions.service.d.ts +66 -0
  20. package/lib/deployers/functions.service.d.ts.map +1 -0
  21. package/lib/deployers/functions.service.js +322 -0
  22. package/lib/deployers/functions.service.js.map +1 -0
  23. package/lib/deployers/functionspackager.service.d.ts +43 -0
  24. package/lib/deployers/functionspackager.service.d.ts.map +1 -0
  25. package/lib/deployers/functionspackager.service.js +151 -0
  26. package/lib/deployers/functionspackager.service.js.map +1 -0
  27. package/lib/index.d.ts +15 -0
  28. package/lib/index.d.ts.map +1 -0
  29. package/lib/index.js +18 -0
  30. package/lib/index.js.map +1 -0
  31. package/lib/services/azure-parameters.d.ts +41 -0
  32. package/lib/services/azure-parameters.d.ts.map +1 -0
  33. package/lib/services/azure-parameters.js +43 -0
  34. package/lib/services/azure-parameters.js.map +1 -0
  35. package/lib/services/blob.service.d.ts +157 -0
  36. package/lib/services/blob.service.d.ts.map +1 -0
  37. package/lib/services/blob.service.js +428 -0
  38. package/lib/services/blob.service.js.map +1 -0
  39. package/lib/services/contributors.d.ts +47 -0
  40. package/lib/services/contributors.d.ts.map +1 -0
  41. package/lib/services/contributors.js +2 -0
  42. package/lib/services/contributors.js.map +1 -0
  43. package/lib/services/cosmos.service.d.ts +211 -0
  44. package/lib/services/cosmos.service.d.ts.map +1 -0
  45. package/lib/services/cosmos.service.js +554 -0
  46. package/lib/services/cosmos.service.js.map +1 -0
  47. package/lib/services/functionserver.service.d.ts +42 -0
  48. package/lib/services/functionserver.service.d.ts.map +1 -0
  49. package/lib/services/functionserver.service.js +223 -0
  50. package/lib/services/functionserver.service.js.map +1 -0
  51. package/lib/services/keyvault.service.d.ts +91 -0
  52. package/lib/services/keyvault.service.d.ts.map +1 -0
  53. package/lib/services/keyvault.service.js +225 -0
  54. package/lib/services/keyvault.service.js.map +1 -0
  55. package/lib/services/monitorlogger.service.d.ts +66 -0
  56. package/lib/services/monitorlogger.service.d.ts.map +1 -0
  57. package/lib/services/monitorlogger.service.js +131 -0
  58. package/lib/services/monitorlogger.service.js.map +1 -0
  59. package/lib/services/servicebus.service.d.ts +128 -0
  60. package/lib/services/servicebus.service.d.ts.map +1 -0
  61. package/lib/services/servicebus.service.js +324 -0
  62. package/lib/services/servicebus.service.js.map +1 -0
  63. package/lib/template.d.ts +53 -0
  64. package/lib/template.d.ts.map +1 -0
  65. package/lib/template.js +74 -0
  66. package/lib/template.js.map +1 -0
  67. package/package.json +77 -3
  68. package/webda.module.json +1817 -0
package/lib/index.js ADDED
@@ -0,0 +1,18 @@
1
+ import { registerWebdaPackage } from "@webda/utils";
2
+ export * from "./services/azure-parameters.js";
3
+ export * from "./services/contributors.js";
4
+ export * from "./services/keyvault.service.js";
5
+ export * from "./services/monitorlogger.service.js";
6
+ export * from "./services/servicebus.service.js";
7
+ export * from "./services/blob.service.js";
8
+ export * from "./services/cosmos.service.js";
9
+ export * from "./services/functionserver.service.js";
10
+ export * from "./auth.js";
11
+ export * from "./template.js";
12
+ export * from "./deployers/arm.service.js";
13
+ export * from "./deployers/containerapps.service.js";
14
+ export * from "./deployers/functionspackager.service.js";
15
+ export * from "./deployers/functions.service.js";
16
+ // Refuse a second copy of the package, see registerWebdaPackage
17
+ registerWebdaPackage("@webda/azure", import.meta.url);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AAEjD,gEAAgE;AAChE,oBAAoB,CAAC,cAAc,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { TokenCredential } from "@azure/core-auth";
2
+ import { SecretString, ServiceParameters } from "@webda/core";
3
+ /** Authentication and endpoint parameters shared by Azure services and deployers. */
4
+ export interface AzureServiceParameters {
5
+ /** Microsoft Entra tenant; defaults to AZURE_TENANT_ID. */
6
+ tenantId?: string;
7
+ /** Service principal or user-assigned managed identity client id; defaults to AZURE_CLIENT_ID. */
8
+ clientId?: string;
9
+ /** Service principal secret; defaults to AZURE_CLIENT_SECRET. Prefer managed/workload identity. */
10
+ clientSecret?: string | SecretString;
11
+ /** Subscription containing the resources; defaults to AZURE_SUBSCRIPTION_ID. */
12
+ subscriptionId?: string;
13
+ /** Service-specific endpoint override, for example Azurite. This is not an identity authority URL. */
14
+ endpoint?: string;
15
+ }
16
+ /** Common parameters for services using Microsoft Entra authentication. */
17
+ export declare class AzureParameters extends ServiceParameters implements AzureServiceParameters {
18
+ tenantId?: string;
19
+ clientId?: string;
20
+ clientSecret?: string | SecretString;
21
+ subscriptionId?: string;
22
+ endpoint?: string;
23
+ /**
24
+ * Apply the standard Azure environment defaults.
25
+ * @override
26
+ */
27
+ load(params?: Partial<AzureParameters>): this;
28
+ }
29
+ /**
30
+ * Fill absent Azure parameters from the standard Azure environment variables. Explicit values always win. Service parameter classes can call this from load(); it preserves SecretString instances.
31
+ * @param params - Raw configuration parameters
32
+ * @returns The load azure parameters result
33
+ */
34
+ export declare function loadAzureParameters<T extends AzureServiceParameters>(params: T): T;
35
+ /**
36
+ * Select a service principal when all three credential fields are nonempty, otherwise use Azure's default chain. Constructing the credential performs no network I/O. Secrets are unwrapped only for the SDK constructor and clear-text values produce SecretString's value-free warning. The input and process environment are unchanged.
37
+ * @param params - Raw configuration parameters
38
+ * @returns The azure credential result
39
+ */
40
+ export declare function getAzureCredential(params?: AzureServiceParameters): TokenCredential;
41
+ //# sourceMappingURL=azure-parameters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-parameters.d.ts","sources":["../../src/services/azure-parameters.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9D,qFAAqF;AACrF,MAAM,WAAW,sBAAsB;IACrC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kGAAkG;IAClG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mGAAmG;IACnG,YAAY,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IACrC,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sGAAsG;IACtG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2EAA2E;AAC3E,qBAAa,eAAgB,SAAQ,iBAAkB,YAAW,sBAAsB;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,IAAI,CAAC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GAAG,IAAI,CAGhD;CACF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,sBAAsB,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAMlF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,sBAA2B,GAAG,eAAe,CAYvF"}
@@ -0,0 +1,43 @@
1
+ import { ClientSecretCredential, DefaultAzureCredential } from "@azure/identity";
2
+ import { SecretString, ServiceParameters } from "@webda/core";
3
+ /** Common parameters for services using Microsoft Entra authentication. */
4
+ export class AzureParameters extends ServiceParameters {
5
+ /**
6
+ * Apply the standard Azure environment defaults.
7
+ * @override
8
+ */
9
+ load(params = {}) {
10
+ super.load(params);
11
+ return loadAzureParameters(this);
12
+ }
13
+ }
14
+ /**
15
+ * Fill absent Azure parameters from the standard Azure environment variables. Explicit values always win. Service parameter classes can call this from load(); it preserves SecretString instances.
16
+ * @param params - Raw configuration parameters
17
+ * @returns The load azure parameters result
18
+ */
19
+ export function loadAzureParameters(params) {
20
+ params.tenantId ?? (params.tenantId = process.env.AZURE_TENANT_ID || undefined);
21
+ params.clientId ?? (params.clientId = process.env.AZURE_CLIENT_ID || undefined);
22
+ params.clientSecret ?? (params.clientSecret = process.env.AZURE_CLIENT_SECRET || undefined);
23
+ params.subscriptionId ?? (params.subscriptionId = process.env.AZURE_SUBSCRIPTION_ID || undefined);
24
+ return params;
25
+ }
26
+ /**
27
+ * Select a service principal when all three credential fields are nonempty, otherwise use Azure's default chain. Constructing the credential performs no network I/O. Secrets are unwrapped only for the SDK constructor and clear-text values produce SecretString's value-free warning. The input and process environment are unchanged.
28
+ * @param params - Raw configuration parameters
29
+ * @returns The azure credential result
30
+ */
31
+ export function getAzureCredential(params = {}) {
32
+ const resolved = loadAzureParameters({ ...params });
33
+ const secret = resolved.clientSecret === undefined ? undefined : SecretString.from(resolved.clientSecret, "clientSecret");
34
+ if (resolved.tenantId && resolved.clientId && secret) {
35
+ return new ClientSecretCredential(resolved.tenantId, resolved.clientId, secret);
36
+ }
37
+ return new DefaultAzureCredential({
38
+ tenantId: resolved.tenantId || undefined,
39
+ managedIdentityClientId: resolved.clientId || undefined,
40
+ workloadIdentityClientId: resolved.clientId || undefined
41
+ });
42
+ }
43
+ //# sourceMappingURL=azure-parameters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-parameters.js","sources":["../../src/services/azure-parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAgB9D,2EAA2E;AAC3E,MAAM,OAAO,eAAgB,SAAQ,iBAAiB;IAOpD;;;OAGG;IACH,IAAI,CAAC,MAAM,GAA6B,EAAE;QACxC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAmC,MAAS;IAC7E,MAAM,CAAC,QAAQ,KAAf,MAAM,CAAC,QAAQ,GAAK,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,SAAS,EAAC;IAC7D,MAAM,CAAC,QAAQ,KAAf,MAAM,CAAC,QAAQ,GAAK,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,SAAS,EAAC;IAC7D,MAAM,CAAC,YAAY,KAAnB,MAAM,CAAC,YAAY,GAAK,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,SAAS,EAAC;IACrE,MAAM,CAAC,cAAc,KAArB,MAAM,CAAC,cAAc,GAAK,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS,EAAC;IACzE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAM,GAA2B,EAAE;IACpE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IACpD,MAAM,MAAM,GACV,QAAQ,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC7G,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC;QACrD,OAAO,IAAI,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,IAAI,sBAAsB,CAAC;QAChC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS;QACxC,uBAAuB,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS;QACvD,wBAAwB,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS;KACzD,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,157 @@
1
+ import { BlobServiceClient } from "@azure/storage-blob";
2
+ import { BinaryFile, BinaryFileInfo, BinaryMap, CloudBinary, CloudBinaryParameters, CoreModelWithBinary, OperationContext, SecretString } from "@webda/core";
3
+ import { ContentBody, ContentGetOptions, ContentInfo, ContentPutOptions } from "@webda/utils";
4
+ import { Readable } from "node:stream";
5
+ import { AzureServiceParameters } from "./azure-parameters.js";
6
+ import { AzureContributor, AzureDeployerInfo, AzureResourceContribution } from "./contributors.js";
7
+ /** Blob storage settings. Shared keys are optional; managed identity is preferred. */
8
+ export declare class AzureBlobBinaryParameters extends CloudBinaryParameters implements AzureServiceParameters {
9
+ account?: string;
10
+ connectionString?: string | SecretString;
11
+ container: string;
12
+ endpoint?: string;
13
+ tenantId?: string;
14
+ clientId?: string;
15
+ clientSecret?: string | SecretString;
16
+ subscriptionId?: string;
17
+ createContainer: boolean;
18
+ /** Override the Blob API/SAS version for older Azurite installations. */
19
+ serviceVersion?: string;
20
+ pendingTimeout: number;
21
+ /**
22
+ * Perform load.
23
+ * @override
24
+ */
25
+ load(params?: any): this;
26
+ }
27
+ /** Blob-backed binaries with verified direct uploads and exact ownership markers.
28
+ * @WebdaModda
29
+ */
30
+ export declare class AzureBlobBinary extends CloudBinary<AzureBlobBinaryParameters> implements AzureContributor {
31
+ static Parameters: typeof AzureBlobBinaryParameters;
32
+ readonly schemes: string[];
33
+ protected client: BlobServiceClient;
34
+ /**
35
+ * Perform init.
36
+ * @override
37
+ */
38
+ init(): Promise<this>;
39
+ /**
40
+ * Perform get content bucket.
41
+ * @override
42
+ */
43
+ getContentBucket(): string;
44
+ /**
45
+ * Resolve a content URL to a configured Blob SDK client.
46
+ * @param url - Content URL
47
+ * @returns The blob result
48
+ */
49
+ protected blob(url: string): import("@azure/storage-blob").BlockBlobClient;
50
+ /**
51
+ * Perform get content.
52
+ * @override
53
+ */
54
+ getContent(url: string, options?: ContentGetOptions): Promise<Readable>;
55
+ /**
56
+ * Perform put content.
57
+ * @override
58
+ */
59
+ putContent(url: string, body: ContentBody, options?: ContentPutOptions): Promise<ContentInfo>;
60
+ /**
61
+ * Perform head content.
62
+ * @override
63
+ */
64
+ headContent(url: string): Promise<ContentInfo | undefined>;
65
+ /**
66
+ * Perform delete content.
67
+ * @override
68
+ */
69
+ deleteContent(url: string): Promise<void>;
70
+ /**
71
+ * Perform _get.
72
+ * @override
73
+ */
74
+ _get(info: BinaryMap): Promise<Readable>;
75
+ /**
76
+ * Perform get signed url from map.
77
+ * @override
78
+ */
79
+ getSignedUrlFromMap(map: BinaryMap, expires: number, _context: OperationContext): Promise<string>;
80
+ /**
81
+ * Issue narrowly scoped SAS credentials. Direct uploads only create isolated staging blobs.
82
+ * @param key - Object key within the container
83
+ * @param permissions - Permissions granted by the SAS
84
+ * @param expires - SAS lifetime in seconds
85
+ * @returns The signed url result
86
+ */
87
+ getSignedUrl(key: string, permissions?: "r" | "c", expires?: number): Promise<string>;
88
+ /**
89
+ * Validate a hash before using it in a storage key.
90
+ * @param hash - Normalized content hash
91
+ * @returns The check hash result
92
+ */
93
+ protected checkHash(hash?: string): asserts hash is string;
94
+ /**
95
+ * Build an injective ownership marker from the model, attribute and key.
96
+ * @param model - Model class or model identifier
97
+ * @param property - Binary or model attribute
98
+ * @param uuid - Owner primary key
99
+ * @returns The marker result
100
+ */
101
+ protected marker(model: string, property: string, uuid: string): string;
102
+ /**
103
+ * Build the private pending-upload record key.
104
+ * @param object - Model owning the binary
105
+ * @param property - Binary or model attribute
106
+ * @param hash - Normalized content hash
107
+ * @returns The pending key result
108
+ */
109
+ protected pendingKey(object: CoreModelWithBinary, property: string, hash: string): string;
110
+ /**
111
+ * Persist an exact ownership marker and attach the verified file.
112
+ * @param object - Model owning the binary
113
+ * @param property - Binary or model attribute
114
+ * @param info - Binary metadata or increment specification
115
+ */
116
+ protected attach(object: CoreModelWithBinary, property: string, info: BinaryFileInfo): Promise<void>;
117
+ /**
118
+ * Perform store.
119
+ * @override
120
+ */
121
+ store(object: CoreModelWithBinary, property: string, file: BinaryFile): Promise<void>;
122
+ /**
123
+ * Perform put redirect url.
124
+ * @override
125
+ */
126
+ putRedirectUrl(object: CoreModelWithBinary, property: string, info?: BinaryFileInfo, context?: OperationContext<BinaryFileInfo>): Promise<{
127
+ url: string;
128
+ method: string;
129
+ headers: {
130
+ "x-ms-blob-type": string;
131
+ "Content-Type": string;
132
+ "Content-MD5": string;
133
+ };
134
+ } | undefined>;
135
+ /**
136
+ * Verify the bytes before copying them to the content hash and attaching them to the owner.
137
+ * @override
138
+ */
139
+ completeUpload(object: CoreModelWithBinary, property: string, hash: string): Promise<void>;
140
+ /**
141
+ * Perform get usage count.
142
+ * @override
143
+ */
144
+ getUsageCount(hash: string): Promise<number>;
145
+ /**
146
+ * Perform _clean usage.
147
+ * @override
148
+ */
149
+ _cleanUsage(hash: string, uuid: string, attribute: string, model: string): Promise<void>;
150
+ /**
151
+ * Describe the Azure resources and identity permissions required by this service.
152
+ * @param deployer - Deployment scope and identity helpers
153
+ * @returns The azure resources result
154
+ */
155
+ getAzureResources(deployer: AzureDeployerInfo): AzureResourceContribution;
156
+ }
157
+ //# sourceMappingURL=blob.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob.service.d.ts","sources":["../../src/services/blob.service.ts"],"names":[],"mappings":"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"}