@backstage/connections 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/CHANGELOG.md +0 -0
  2. package/README.md +5 -0
  3. package/dist/api/DefaultConnectionService.cjs.js +205 -0
  4. package/dist/api/DefaultConnectionService.cjs.js.map +1 -0
  5. package/dist/api/declareConnection.cjs.js +14 -0
  6. package/dist/api/declareConnection.cjs.js.map +1 -0
  7. package/dist/definitions/lookup.cjs.js +16 -0
  8. package/dist/definitions/lookup.cjs.js.map +1 -0
  9. package/dist/definitions/types.cjs.js +32 -0
  10. package/dist/definitions/types.cjs.js.map +1 -0
  11. package/dist/index.cjs.js +15 -0
  12. package/dist/index.cjs.js.map +1 -0
  13. package/dist/index.d.ts +311 -0
  14. package/dist/schema/awsCodeCommit.cjs.js +35 -0
  15. package/dist/schema/awsCodeCommit.cjs.js.map +1 -0
  16. package/dist/schema/awsS3.cjs.js +36 -0
  17. package/dist/schema/awsS3.cjs.js.map +1 -0
  18. package/dist/schema/azure.cjs.js +45 -0
  19. package/dist/schema/azure.cjs.js.map +1 -0
  20. package/dist/schema/azureBlobStorage.cjs.js +49 -0
  21. package/dist/schema/azureBlobStorage.cjs.js.map +1 -0
  22. package/dist/schema/bitbucketCloud.cjs.js +41 -0
  23. package/dist/schema/bitbucketCloud.cjs.js.map +1 -0
  24. package/dist/schema/bitbucketServer.cjs.js +34 -0
  25. package/dist/schema/bitbucketServer.cjs.js.map +1 -0
  26. package/dist/schema/gerrit.cjs.js +30 -0
  27. package/dist/schema/gerrit.cjs.js.map +1 -0
  28. package/dist/schema/gitea.cjs.js +28 -0
  29. package/dist/schema/gitea.cjs.js.map +1 -0
  30. package/dist/schema/github.cjs.js +49 -0
  31. package/dist/schema/github.cjs.js.map +1 -0
  32. package/dist/schema/gitlab.cjs.js +28 -0
  33. package/dist/schema/gitlab.cjs.js.map +1 -0
  34. package/dist/schema/googleGcs.cjs.js +27 -0
  35. package/dist/schema/googleGcs.cjs.js.map +1 -0
  36. package/dist/schema/harness.cjs.js +23 -0
  37. package/dist/schema/harness.cjs.js.map +1 -0
  38. package/dist/service.cjs.js +29 -0
  39. package/dist/service.cjs.js.map +1 -0
  40. package/dist/system/combineConnectionSources.cjs.js +26 -0
  41. package/dist/system/combineConnectionSources.cjs.js.map +1 -0
  42. package/dist/system/createConnectionType.cjs.js +39 -0
  43. package/dist/system/createConnectionType.cjs.js.map +1 -0
  44. package/dist/system/getLegacyIntegrations.cjs.js +332 -0
  45. package/dist/system/getLegacyIntegrations.cjs.js.map +1 -0
  46. package/package.json +61 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createConnectionType.cjs.js","sources":["../../src/system/createConnectionType.ts"],"sourcesContent":["/*\n * Copyright 2026 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { z } from 'zod/v4';\nimport type {\n ConnectionAuthMethod,\n ConnectionType,\n MatchAuth,\n WithoutReservedFields,\n} from '../api/ConnectionType';\n\nconst matchSchema = z\n .object({ plugins: z.array(z.string()) })\n .strict()\n .optional();\n\nexport function createConnectionType<\n TType extends string,\n TConfigSchema extends z.ZodObject,\n const TAuthMethods extends readonly ConnectionAuthMethod[],\n>({\n configSchema,\n type,\n authMethods,\n matchAuth,\n}: {\n type: TType;\n configSchema: WithoutReservedFields<TConfigSchema>;\n authMethods: TAuthMethods;\n matchAuth?: MatchAuth<TAuthMethods>;\n}): ConnectionType<TType, TConfigSchema, TAuthMethods> {\n const authOptions = authMethods.map(am =>\n am.configSchema\n .extend({\n method: z.literal(am.method),\n match: matchSchema,\n })\n .strict(),\n );\n const validated = configSchema as unknown as TConfigSchema;\n const schema = validated\n .extend({\n type: z.literal(type),\n match: matchSchema,\n auth: z.array(\n authOptions.length === 1\n ? authOptions[0]\n : z.discriminatedUnion(\n 'method',\n authOptions as [(typeof authOptions)[0], ...typeof authOptions],\n ),\n ),\n })\n .strict();\n return {\n type,\n configSchema: validated,\n authMethods,\n schema,\n matchAuth,\n };\n}\n"],"names":["z"],"mappings":";;;;AAuBA,MAAM,WAAA,GAAcA,IAAA,CACjB,MAAA,CAAO,EAAE,SAASA,IAAA,CAAE,KAAA,CAAMA,IAAA,CAAE,MAAA,EAAQ,CAAA,EAAG,CAAA,CACvC,MAAA,GACA,QAAA,EAAS;AAEL,SAAS,oBAAA,CAId;AAAA,EACA,YAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,EAKuD;AACrD,EAAA,MAAM,cAAc,WAAA,CAAY,GAAA;AAAA,IAAI,CAAA,EAAA,KAClC,EAAA,CAAG,YAAA,CACA,MAAA,CAAO;AAAA,MACN,MAAA,EAAQA,IAAA,CAAE,OAAA,CAAQ,EAAA,CAAG,MAAM,CAAA;AAAA,MAC3B,KAAA,EAAO;AAAA,KACR,EACA,MAAA;AAAO,GACZ;AACA,EAAA,MAAM,SAAA,GAAY,YAAA;AAClB,EAAA,MAAM,MAAA,GAAS,UACZ,MAAA,CAAO;AAAA,IACN,IAAA,EAAMA,IAAA,CAAE,OAAA,CAAQ,IAAI,CAAA;AAAA,IACpB,KAAA,EAAO,WAAA;AAAA,IACP,MAAMA,IAAA,CAAE,KAAA;AAAA,MACN,YAAY,MAAA,KAAW,CAAA,GACnB,WAAA,CAAY,CAAC,IACbA,IAAA,CAAE,kBAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA;AACF;AACN,GACD,EACA,MAAA,EAAO;AACV,EAAA,OAAO;AAAA,IACL,IAAA;AAAA,IACA,YAAA,EAAc,SAAA;AAAA,IACd,WAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -0,0 +1,332 @@
1
+ 'use strict';
2
+
3
+ function getLegacyIntegrations(config) {
4
+ const integrations = config.getOptionalConfig("integrations");
5
+ if (!integrations) {
6
+ return [];
7
+ }
8
+ return [
9
+ ...convertAwsCodeCommit(
10
+ integrations.getOptionalConfigArray("awsCodeCommit") ?? []
11
+ ),
12
+ ...convertAwsS3(integrations.getOptionalConfigArray("awsS3") ?? []),
13
+ ...convertAzure(integrations.getOptionalConfigArray("azure") ?? []),
14
+ ...convertAzureBlobStorage(
15
+ integrations.getOptionalConfigArray("azureBlobStorage") ?? []
16
+ ),
17
+ ...convertBitbucketCloud(
18
+ integrations.getOptionalConfigArray("bitbucketCloud") ?? []
19
+ ),
20
+ ...convertBitbucketServer(
21
+ integrations.getOptionalConfigArray("bitbucketServer") ?? []
22
+ ),
23
+ ...convertGerrit(integrations.getOptionalConfigArray("gerrit") ?? []),
24
+ ...convertGitea(integrations.getOptionalConfigArray("gitea") ?? []),
25
+ ...convertGithub(integrations.getOptionalConfigArray("github") ?? []),
26
+ ...convertGitlab(integrations.getOptionalConfigArray("gitlab") ?? []),
27
+ ...convertGoogleGcs(integrations.getOptionalConfigArray("googleGcs") ?? []),
28
+ ...convertHarness(integrations.getOptionalConfigArray("harness") ?? [])
29
+ ];
30
+ }
31
+ function convertGithub(entries) {
32
+ return entries.map((entry) => {
33
+ const auth = [];
34
+ const token = entry.getOptionalString("token");
35
+ if (token !== void 0) {
36
+ auth.push({ method: "token", token });
37
+ }
38
+ for (const app of entry.getOptionalConfigArray("apps") ?? []) {
39
+ auth.push(convertGithubApp(app));
40
+ }
41
+ return omitUndefined({
42
+ type: "github",
43
+ host: entry.getOptionalString("host"),
44
+ apiBaseUrl: entry.getOptionalString("apiBaseUrl"),
45
+ rawBaseUrl: entry.getOptionalString("rawBaseUrl"),
46
+ auth
47
+ });
48
+ });
49
+ }
50
+ function convertGitlab(entries) {
51
+ return entries.map((entry) => {
52
+ const auth = [];
53
+ const token = entry.getOptionalString("token");
54
+ if (token !== void 0) {
55
+ auth.push({ method: "token", token });
56
+ }
57
+ return omitUndefined({
58
+ type: "gitlab",
59
+ host: entry.getOptionalString("host"),
60
+ apiBaseUrl: entry.getOptionalString("apiBaseUrl"),
61
+ baseUrl: entry.getOptionalString("baseUrl"),
62
+ auth
63
+ });
64
+ });
65
+ }
66
+ function convertGithubApp(app) {
67
+ return omitUndefined({
68
+ method: "app",
69
+ appId: app.getOptional("appId"),
70
+ privateKey: app.getOptionalString("privateKey"),
71
+ clientId: app.getOptionalString("clientId"),
72
+ clientSecret: app.getOptionalString("clientSecret"),
73
+ webhookSecret: app.getOptionalString("webhookSecret"),
74
+ orgs: app.getOptionalStringArray("allowedInstallationOwners"),
75
+ publicAccess: app.getOptionalBoolean("publicAccess")
76
+ });
77
+ }
78
+ function convertAzure(entries) {
79
+ return entries.map((entry) => {
80
+ const auth = [];
81
+ for (const credential of entry.getOptionalConfigArray("credentials") ?? []) {
82
+ const converted = convertAzureCredential(credential);
83
+ if (converted) {
84
+ auth.push(converted);
85
+ }
86
+ }
87
+ return omitUndefined({
88
+ type: "azure",
89
+ host: entry.getOptionalString("host"),
90
+ auth
91
+ });
92
+ });
93
+ }
94
+ function convertAzureCredential(credential) {
95
+ const orgs = credential.getOptionalStringArray("organizations");
96
+ const personalAccessToken = credential.getOptionalString(
97
+ "personalAccessToken"
98
+ );
99
+ if (personalAccessToken !== void 0) {
100
+ return omitUndefined({
101
+ method: "pat",
102
+ personalAccessToken,
103
+ orgs
104
+ });
105
+ }
106
+ const clientSecret = credential.getOptionalString("clientSecret");
107
+ if (clientSecret !== void 0) {
108
+ return omitUndefined({
109
+ method: "clientCredentials",
110
+ clientId: credential.getOptionalString("clientId"),
111
+ clientSecret,
112
+ tenantId: credential.getOptionalString("tenantId"),
113
+ orgs
114
+ });
115
+ }
116
+ const clientId = credential.getOptionalString("clientId");
117
+ if (clientId !== void 0) {
118
+ return omitUndefined({
119
+ method: "managedIdentity",
120
+ clientId,
121
+ tenantId: credential.getOptionalString("tenantId"),
122
+ managedIdentityClientId: credential.getOptionalString(
123
+ "managedIdentityClientId"
124
+ ),
125
+ orgs
126
+ });
127
+ }
128
+ return void 0;
129
+ }
130
+ function convertBitbucketCloud(entries) {
131
+ return entries.map((entry) => {
132
+ const username = entry.getOptionalString("username");
133
+ const auth = [];
134
+ const token = entry.getOptionalString("token");
135
+ if (username !== void 0 && token !== void 0) {
136
+ auth.push({ method: "token", username, token });
137
+ }
138
+ const appPassword = entry.getOptionalString("appPassword");
139
+ if (username !== void 0 && appPassword !== void 0) {
140
+ auth.push({ method: "appPassword", username, appPassword });
141
+ }
142
+ const clientId = entry.getOptionalString("clientId");
143
+ const clientSecret = entry.getOptionalString("clientSecret");
144
+ if (clientId !== void 0 && clientSecret !== void 0) {
145
+ auth.push({ method: "oauth", clientId, clientSecret });
146
+ }
147
+ return {
148
+ type: "bitbucket-cloud",
149
+ host: "bitbucket.org",
150
+ auth
151
+ };
152
+ });
153
+ }
154
+ function convertBitbucketServer(entries) {
155
+ return entries.map((entry) => {
156
+ const auth = [];
157
+ const token = entry.getOptionalString("token");
158
+ if (token !== void 0) {
159
+ auth.push({ method: "token", token });
160
+ }
161
+ const username = entry.getOptionalString("username");
162
+ const password = entry.getOptionalString("password");
163
+ if (username !== void 0 && password !== void 0) {
164
+ auth.push({ method: "basic", username, password });
165
+ }
166
+ return omitUndefined({
167
+ type: "bitbucket-server",
168
+ host: entry.getOptionalString("host"),
169
+ apiBaseUrl: entry.getOptionalString("apiBaseUrl"),
170
+ auth
171
+ });
172
+ });
173
+ }
174
+ function convertGerrit(entries) {
175
+ return entries.map((entry) => {
176
+ const auth = [];
177
+ const username = entry.getOptionalString("username");
178
+ const password = entry.getOptionalString("password");
179
+ if (username !== void 0 && password !== void 0) {
180
+ auth.push({ method: "basic", username, password });
181
+ }
182
+ return omitUndefined({
183
+ type: "gerrit",
184
+ host: entry.getOptionalString("host"),
185
+ baseUrl: entry.getOptionalString("baseUrl"),
186
+ gitilesBaseUrl: entry.getOptionalString("gitilesBaseUrl"),
187
+ cloneUrl: entry.getOptionalString("cloneUrl"),
188
+ auth
189
+ });
190
+ });
191
+ }
192
+ function convertGitea(entries) {
193
+ return entries.map((entry) => {
194
+ const auth = [];
195
+ const username = entry.getOptionalString("username");
196
+ const password = entry.getOptionalString("password");
197
+ if (username !== void 0 && password !== void 0) {
198
+ auth.push({ method: "basic", username, password });
199
+ }
200
+ return omitUndefined({
201
+ type: "gitea",
202
+ host: entry.getOptionalString("host"),
203
+ baseUrl: entry.getOptionalString("baseUrl"),
204
+ auth
205
+ });
206
+ });
207
+ }
208
+ function convertHarness(entries) {
209
+ return entries.map((entry) => {
210
+ const auth = [];
211
+ const token = entry.getOptionalString("token");
212
+ if (token !== void 0) {
213
+ const apiKey = entry.getOptionalString("apiKey");
214
+ auth.push(omitUndefined({ method: "token", token, apiKey }));
215
+ }
216
+ return omitUndefined({
217
+ type: "harness",
218
+ host: entry.getOptionalString("host"),
219
+ auth
220
+ });
221
+ });
222
+ }
223
+ function convertAwsCodeCommit(entries) {
224
+ return entries.map((entry) => {
225
+ const auth = [];
226
+ const accessKeyId = entry.getOptionalString("accessKeyId");
227
+ const secretAccessKey = entry.getOptionalString("secretAccessKey");
228
+ if (accessKeyId !== void 0 && secretAccessKey !== void 0) {
229
+ auth.push({ method: "accessKey", accessKeyId, secretAccessKey });
230
+ }
231
+ const roleArn = entry.getOptionalString("roleArn");
232
+ if (roleArn !== void 0) {
233
+ auth.push(
234
+ omitUndefined({
235
+ method: "assumeRole",
236
+ roleArn,
237
+ externalId: entry.getOptionalString("externalId")
238
+ })
239
+ );
240
+ }
241
+ const region = entry.getString("region");
242
+ const host = entry.getOptionalString("host") ?? `${region}.console.aws.amazon.com`;
243
+ return { type: "aws-codecommit", host, region, auth };
244
+ });
245
+ }
246
+ function convertAwsS3(entries) {
247
+ return entries.map((entry) => {
248
+ const auth = [];
249
+ const accessKeyId = entry.getOptionalString("accessKeyId");
250
+ const secretAccessKey = entry.getOptionalString("secretAccessKey");
251
+ if (accessKeyId !== void 0 && secretAccessKey !== void 0) {
252
+ auth.push({ method: "accessKey", accessKeyId, secretAccessKey });
253
+ }
254
+ const roleArn = entry.getOptionalString("roleArn");
255
+ if (roleArn !== void 0) {
256
+ auth.push(
257
+ omitUndefined({
258
+ method: "assumeRole",
259
+ roleArn,
260
+ externalId: entry.getOptionalString("externalId")
261
+ })
262
+ );
263
+ }
264
+ const endpoint = entry.getOptionalString("endpoint");
265
+ const host = endpoint ? new URL(endpoint).host : "amazonaws.com";
266
+ return omitUndefined({
267
+ type: "aws-s3",
268
+ host,
269
+ endpoint,
270
+ s3ForcePathStyle: entry.getOptionalBoolean("s3ForcePathStyle"),
271
+ auth
272
+ });
273
+ });
274
+ }
275
+ function convertAzureBlobStorage(entries) {
276
+ return entries.map((entry) => {
277
+ const auth = [];
278
+ const accountKey = entry.getOptionalString("accountKey");
279
+ if (accountKey !== void 0) {
280
+ auth.push({ method: "accountKey", accountKey });
281
+ }
282
+ const sasToken = entry.getOptionalString("sasToken");
283
+ if (sasToken !== void 0) {
284
+ auth.push({ method: "sasToken", sasToken });
285
+ }
286
+ const connectionString = entry.getOptionalString("connectionString");
287
+ if (connectionString !== void 0) {
288
+ auth.push({ method: "connectionString", connectionString });
289
+ }
290
+ if (entry.has("aadCredential")) {
291
+ auth.push({
292
+ method: "aadCredential",
293
+ clientId: entry.getString("aadCredential.clientId"),
294
+ tenantId: entry.getString("aadCredential.tenantId"),
295
+ clientSecret: entry.getString("aadCredential.clientSecret")
296
+ });
297
+ }
298
+ const endpoint = entry.getOptionalString("endpoint");
299
+ const host = endpoint ? new URL(endpoint).host : entry.getOptionalString("host") ?? "blob.core.windows.net";
300
+ return omitUndefined({
301
+ type: "azure-blob-storage",
302
+ host,
303
+ accountName: entry.getOptionalString("accountName"),
304
+ endpoint,
305
+ endpointSuffix: entry.getOptionalString("endpointSuffix"),
306
+ auth
307
+ });
308
+ });
309
+ }
310
+ function convertGoogleGcs(entries) {
311
+ return entries.map((entry) => {
312
+ const auth = [];
313
+ const clientEmail = entry.getOptionalString("clientEmail");
314
+ const privateKey = entry.getOptionalString("privateKey");
315
+ if (clientEmail !== void 0 && privateKey !== void 0) {
316
+ auth.push({ method: "serviceAccount", clientEmail, privateKey });
317
+ }
318
+ return { type: "google-gcs", host: "storage.cloud.google.com", auth };
319
+ });
320
+ }
321
+ function omitUndefined(input) {
322
+ const out = {};
323
+ for (const [key, value] of Object.entries(input)) {
324
+ if (value !== void 0) {
325
+ out[key] = value;
326
+ }
327
+ }
328
+ return out;
329
+ }
330
+
331
+ exports.getLegacyIntegrations = getLegacyIntegrations;
332
+ //# sourceMappingURL=getLegacyIntegrations.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLegacyIntegrations.cjs.js","sources":["../../src/system/getLegacyIntegrations.ts"],"sourcesContent":["/*\n * Copyright 2026 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { RootConfigService } from '@backstage/backend-plugin-api';\nimport { Config } from '@backstage/config';\nimport { JsonObject, JsonValue } from '@backstage/types';\n\n/**\n * Reads legacy `integrations.*` config and converts each entry to a connection\n * object in the same shape as `connections:` config. The result is a list of\n * unvalidated JsonObjects; the caller is expected to run them through the\n * normal connection-schema validation alongside the rest of the connections\n * config.\n */\nexport function getLegacyIntegrations(config: RootConfigService): JsonObject[] {\n const integrations = config.getOptionalConfig('integrations');\n if (!integrations) {\n return [];\n }\n\n return [\n ...convertAwsCodeCommit(\n integrations.getOptionalConfigArray('awsCodeCommit') ?? [],\n ),\n ...convertAwsS3(integrations.getOptionalConfigArray('awsS3') ?? []),\n ...convertAzure(integrations.getOptionalConfigArray('azure') ?? []),\n ...convertAzureBlobStorage(\n integrations.getOptionalConfigArray('azureBlobStorage') ?? [],\n ),\n ...convertBitbucketCloud(\n integrations.getOptionalConfigArray('bitbucketCloud') ?? [],\n ),\n ...convertBitbucketServer(\n integrations.getOptionalConfigArray('bitbucketServer') ?? [],\n ),\n ...convertGerrit(integrations.getOptionalConfigArray('gerrit') ?? []),\n ...convertGitea(integrations.getOptionalConfigArray('gitea') ?? []),\n ...convertGithub(integrations.getOptionalConfigArray('github') ?? []),\n ...convertGitlab(integrations.getOptionalConfigArray('gitlab') ?? []),\n ...convertGoogleGcs(integrations.getOptionalConfigArray('googleGcs') ?? []),\n ...convertHarness(integrations.getOptionalConfigArray('harness') ?? []),\n ];\n}\n\nfunction convertGithub(entries: Config[]): JsonObject[] {\n return entries.map(entry => {\n const auth: JsonObject[] = [];\n\n const token = entry.getOptionalString('token');\n if (token !== undefined) {\n auth.push({ method: 'token', token });\n }\n\n for (const app of entry.getOptionalConfigArray('apps') ?? []) {\n auth.push(convertGithubApp(app));\n }\n\n return omitUndefined({\n type: 'github',\n host: entry.getOptionalString('host'),\n apiBaseUrl: entry.getOptionalString('apiBaseUrl'),\n rawBaseUrl: entry.getOptionalString('rawBaseUrl'),\n auth,\n });\n });\n}\n\nfunction convertGitlab(entries: Config[]): JsonObject[] {\n return entries.map(entry => {\n const auth: JsonObject[] = [];\n\n const token = entry.getOptionalString('token');\n if (token !== undefined) {\n auth.push({ method: 'token', token });\n }\n\n return omitUndefined({\n type: 'gitlab',\n host: entry.getOptionalString('host'),\n apiBaseUrl: entry.getOptionalString('apiBaseUrl'),\n baseUrl: entry.getOptionalString('baseUrl'),\n auth,\n });\n });\n}\n\nfunction convertGithubApp(app: Config): JsonObject {\n return omitUndefined({\n method: 'app',\n appId: app.getOptional<JsonValue>('appId'),\n privateKey: app.getOptionalString('privateKey'),\n clientId: app.getOptionalString('clientId'),\n clientSecret: app.getOptionalString('clientSecret'),\n webhookSecret: app.getOptionalString('webhookSecret'),\n orgs: app.getOptionalStringArray('allowedInstallationOwners'),\n publicAccess: app.getOptionalBoolean('publicAccess'),\n });\n}\n\nfunction convertAzure(entries: Config[]): JsonObject[] {\n return entries.map(entry => {\n const auth: JsonObject[] = [];\n for (const credential of entry.getOptionalConfigArray('credentials') ??\n []) {\n const converted = convertAzureCredential(credential);\n if (converted) {\n auth.push(converted);\n }\n }\n\n return omitUndefined({\n type: 'azure',\n host: entry.getOptionalString('host'),\n auth,\n });\n });\n}\n\nfunction convertAzureCredential(credential: Config): JsonObject | undefined {\n const orgs = credential.getOptionalStringArray('organizations');\n const personalAccessToken = credential.getOptionalString(\n 'personalAccessToken',\n );\n if (personalAccessToken !== undefined) {\n return omitUndefined({\n method: 'pat',\n personalAccessToken,\n orgs,\n });\n }\n\n const clientSecret = credential.getOptionalString('clientSecret');\n if (clientSecret !== undefined) {\n return omitUndefined({\n method: 'clientCredentials',\n clientId: credential.getOptionalString('clientId'),\n clientSecret,\n tenantId: credential.getOptionalString('tenantId'),\n orgs,\n });\n }\n\n const clientId = credential.getOptionalString('clientId');\n if (clientId !== undefined) {\n return omitUndefined({\n method: 'managedIdentity',\n clientId,\n tenantId: credential.getOptionalString('tenantId'),\n managedIdentityClientId: credential.getOptionalString(\n 'managedIdentityClientId',\n ),\n orgs,\n });\n }\n\n return undefined;\n}\n\nfunction convertBitbucketCloud(entries: Config[]): JsonObject[] {\n return entries.map(entry => {\n const username = entry.getOptionalString('username');\n const auth: JsonObject[] = [];\n\n const token = entry.getOptionalString('token');\n if (username !== undefined && token !== undefined) {\n auth.push({ method: 'token', username, token });\n }\n\n const appPassword = entry.getOptionalString('appPassword');\n if (username !== undefined && appPassword !== undefined) {\n auth.push({ method: 'appPassword', username, appPassword });\n }\n\n const clientId = entry.getOptionalString('clientId');\n const clientSecret = entry.getOptionalString('clientSecret');\n if (clientId !== undefined && clientSecret !== undefined) {\n auth.push({ method: 'oauth', clientId, clientSecret });\n }\n\n return {\n type: 'bitbucket-cloud',\n host: 'bitbucket.org',\n auth,\n };\n });\n}\n\nfunction convertBitbucketServer(entries: Config[]): JsonObject[] {\n return entries.map(entry => {\n const auth: JsonObject[] = [];\n\n const token = entry.getOptionalString('token');\n if (token !== undefined) {\n auth.push({ method: 'token', token });\n }\n\n const username = entry.getOptionalString('username');\n const password = entry.getOptionalString('password');\n if (username !== undefined && password !== undefined) {\n auth.push({ method: 'basic', username, password });\n }\n\n return omitUndefined({\n type: 'bitbucket-server',\n host: entry.getOptionalString('host'),\n apiBaseUrl: entry.getOptionalString('apiBaseUrl'),\n auth,\n });\n });\n}\n\nfunction convertGerrit(entries: Config[]): JsonObject[] {\n return entries.map(entry => {\n const auth: JsonObject[] = [];\n\n const username = entry.getOptionalString('username');\n const password = entry.getOptionalString('password');\n if (username !== undefined && password !== undefined) {\n auth.push({ method: 'basic', username, password });\n }\n\n return omitUndefined({\n type: 'gerrit',\n host: entry.getOptionalString('host'),\n baseUrl: entry.getOptionalString('baseUrl'),\n gitilesBaseUrl: entry.getOptionalString('gitilesBaseUrl'),\n cloneUrl: entry.getOptionalString('cloneUrl'),\n auth,\n });\n });\n}\n\nfunction convertGitea(entries: Config[]): JsonObject[] {\n return entries.map(entry => {\n const auth: JsonObject[] = [];\n\n const username = entry.getOptionalString('username');\n const password = entry.getOptionalString('password');\n if (username !== undefined && password !== undefined) {\n auth.push({ method: 'basic', username, password });\n }\n\n return omitUndefined({\n type: 'gitea',\n host: entry.getOptionalString('host'),\n baseUrl: entry.getOptionalString('baseUrl'),\n auth,\n });\n });\n}\n\nfunction convertHarness(entries: Config[]): JsonObject[] {\n return entries.map(entry => {\n const auth: JsonObject[] = [];\n\n const token = entry.getOptionalString('token');\n if (token !== undefined) {\n const apiKey = entry.getOptionalString('apiKey');\n auth.push(omitUndefined({ method: 'token', token, apiKey }));\n }\n\n return omitUndefined({\n type: 'harness',\n host: entry.getOptionalString('host'),\n auth,\n });\n });\n}\n\nfunction convertAwsCodeCommit(entries: Config[]): JsonObject[] {\n return entries.map(entry => {\n const auth: JsonObject[] = [];\n\n const accessKeyId = entry.getOptionalString('accessKeyId');\n const secretAccessKey = entry.getOptionalString('secretAccessKey');\n if (accessKeyId !== undefined && secretAccessKey !== undefined) {\n auth.push({ method: 'accessKey', accessKeyId, secretAccessKey });\n }\n\n const roleArn = entry.getOptionalString('roleArn');\n if (roleArn !== undefined) {\n auth.push(\n omitUndefined({\n method: 'assumeRole',\n roleArn,\n externalId: entry.getOptionalString('externalId'),\n }),\n );\n }\n\n const region = entry.getString('region');\n const host =\n entry.getOptionalString('host') ?? `${region}.console.aws.amazon.com`;\n\n return { type: 'aws-codecommit', host, region, auth };\n });\n}\n\nfunction convertAwsS3(entries: Config[]): JsonObject[] {\n return entries.map(entry => {\n const auth: JsonObject[] = [];\n\n const accessKeyId = entry.getOptionalString('accessKeyId');\n const secretAccessKey = entry.getOptionalString('secretAccessKey');\n if (accessKeyId !== undefined && secretAccessKey !== undefined) {\n auth.push({ method: 'accessKey', accessKeyId, secretAccessKey });\n }\n\n const roleArn = entry.getOptionalString('roleArn');\n if (roleArn !== undefined) {\n auth.push(\n omitUndefined({\n method: 'assumeRole',\n roleArn,\n externalId: entry.getOptionalString('externalId'),\n }),\n );\n }\n\n const endpoint = entry.getOptionalString('endpoint');\n const host = endpoint ? new URL(endpoint).host : 'amazonaws.com';\n\n return omitUndefined({\n type: 'aws-s3',\n host,\n endpoint,\n s3ForcePathStyle: entry.getOptionalBoolean('s3ForcePathStyle'),\n auth,\n });\n });\n}\n\nfunction convertAzureBlobStorage(entries: Config[]): JsonObject[] {\n return entries.map(entry => {\n const auth: JsonObject[] = [];\n\n const accountKey = entry.getOptionalString('accountKey');\n if (accountKey !== undefined) {\n auth.push({ method: 'accountKey', accountKey });\n }\n\n const sasToken = entry.getOptionalString('sasToken');\n if (sasToken !== undefined) {\n auth.push({ method: 'sasToken', sasToken });\n }\n\n const connectionString = entry.getOptionalString('connectionString');\n if (connectionString !== undefined) {\n auth.push({ method: 'connectionString', connectionString });\n }\n\n if (entry.has('aadCredential')) {\n auth.push({\n method: 'aadCredential',\n clientId: entry.getString('aadCredential.clientId'),\n tenantId: entry.getString('aadCredential.tenantId'),\n clientSecret: entry.getString('aadCredential.clientSecret'),\n });\n }\n\n const endpoint = entry.getOptionalString('endpoint');\n const host = endpoint\n ? new URL(endpoint).host\n : entry.getOptionalString('host') ?? 'blob.core.windows.net';\n\n return omitUndefined({\n type: 'azure-blob-storage',\n host,\n accountName: entry.getOptionalString('accountName'),\n endpoint,\n endpointSuffix: entry.getOptionalString('endpointSuffix'),\n auth,\n });\n });\n}\n\nfunction convertGoogleGcs(entries: Config[]): JsonObject[] {\n return entries.map(entry => {\n const auth: JsonObject[] = [];\n\n const clientEmail = entry.getOptionalString('clientEmail');\n const privateKey = entry.getOptionalString('privateKey');\n if (clientEmail !== undefined && privateKey !== undefined) {\n auth.push({ method: 'serviceAccount', clientEmail, privateKey });\n }\n\n return { type: 'google-gcs', host: 'storage.cloud.google.com', auth };\n });\n}\n\nfunction omitUndefined(\n input: Record<string, JsonValue | undefined>,\n): JsonObject {\n const out: JsonObject = {};\n for (const [key, value] of Object.entries(input)) {\n if (value !== undefined) {\n out[key] = value;\n }\n }\n return out;\n}\n"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@backstage/connections",
3
+ "version": "0.0.0",
4
+ "description": "Connections framework used by Backstage to better manage external connections used by integrations and plugins",
5
+ "backstage": {
6
+ "role": "node-library",
7
+ "pluginId": "connections",
8
+ "pluginPackages": [
9
+ "@backstage/connections"
10
+ ]
11
+ },
12
+ "publishConfig": {
13
+ "access": "public",
14
+ "main": "dist/index.cjs.js",
15
+ "module": "dist/index.esm.js",
16
+ "types": "dist/index.d.ts"
17
+ },
18
+ "keywords": [
19
+ "backstage"
20
+ ],
21
+ "homepage": "https://backstage.io",
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "https://github.com/backstage/backstage",
25
+ "directory": "packages/connections"
26
+ },
27
+ "license": "Apache-2.0",
28
+ "main": "dist/index.cjs.js",
29
+ "types": "dist/index.d.ts",
30
+ "files": [
31
+ "dist"
32
+ ],
33
+ "scripts": {
34
+ "build": "backstage-cli package build",
35
+ "clean": "backstage-cli package clean",
36
+ "lint": "backstage-cli package lint",
37
+ "prepack": "backstage-cli package prepack",
38
+ "postpack": "backstage-cli package postpack",
39
+ "start": "backstage-cli package start",
40
+ "test": "backstage-cli package test"
41
+ },
42
+ "dependencies": {
43
+ "@backstage/backend-plugin-api": "1.9.2-next.1",
44
+ "@backstage/config": "1.3.8",
45
+ "@backstage/errors": "1.3.1",
46
+ "@backstage/types": "1.2.2",
47
+ "zod": "^3.25.76 || ^4.0.0"
48
+ },
49
+ "devDependencies": {
50
+ "@backstage/backend-test-utils": "1.11.4-next.1",
51
+ "@backstage/cli": "0.36.3-next.1"
52
+ },
53
+ "typesVersions": {
54
+ "*": {
55
+ "package.json": [
56
+ "package.json"
57
+ ]
58
+ }
59
+ },
60
+ "module": "dist/index.esm.js"
61
+ }