@arbium/enterprise-agent-connect 0.1.2-dev.d2aa5ca → 0.2.1-dev.7b4e802
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/README.md +19 -7
- package/dist/connectors/adestra/connector.json +336 -0
- package/dist/connectors/adobe-admin-console/connector.json +212 -0
- package/dist/connectors/argo-cd/connector.json +210 -0
- package/dist/connectors/automox/connector.json +376 -0
- package/dist/connectors/churnzero/connector.json +238 -0
- package/dist/connectors/confluence/connector.json +168 -0
- package/dist/connectors/cvent/connector.json +287 -0
- package/dist/connectors/datadog/connector.json +188 -0
- package/dist/connectors/drata/connector.json +447 -0
- package/dist/connectors/druva/connector.json +258 -0
- package/dist/connectors/dynamics-365/connector.json +16 -1
- package/dist/connectors/dynamics-365/index.d.ts +1 -4
- package/dist/connectors/dynamics-365/index.js.map +1 -1
- package/dist/connectors/entra/index.d.ts +1 -1
- package/dist/connectors/forsta-decipher/connector.json +164 -0
- package/dist/connectors/gitlab/connector.json +263 -0
- package/dist/connectors/gong/vendor.d.ts +1 -1
- package/dist/connectors/gong/vendor.js +24 -32
- package/dist/connectors/gong/vendor.js.map +1 -1
- package/dist/connectors/grafana/connector.json +162 -0
- package/dist/connectors/http/index.d.ts +7 -7
- package/dist/connectors/http/index.js +66 -9
- package/dist/connectors/http/index.js.map +1 -1
- package/dist/connectors/http/openapi.d.ts +62 -0
- package/dist/connectors/http/openapi.js +342 -0
- package/dist/connectors/http/openapi.js.map +1 -0
- package/dist/connectors/intercom/connector.json +249 -0
- package/dist/connectors/intune/index.d.ts +1 -1
- package/dist/connectors/jamf/vendor.js +5 -1
- package/dist/connectors/jamf/vendor.js.map +1 -1
- package/dist/connectors/jira/connector.json +3 -3
- package/dist/connectors/jira/vendor.d.ts +1 -1
- package/dist/connectors/jira/vendor.js +8 -2
- package/dist/connectors/jira/vendor.js.map +1 -1
- package/dist/connectors/lusha/connector.json +59 -0
- package/dist/connectors/lusha/index.d.ts +8 -0
- package/dist/connectors/lusha/index.js +7 -0
- package/dist/connectors/lusha/index.js.map +1 -0
- package/dist/connectors/lusha/tools.d.ts +2 -0
- package/dist/connectors/lusha/tools.js +113 -0
- package/dist/connectors/lusha/tools.js.map +1 -0
- package/dist/connectors/lusha/vendor.d.ts +4 -0
- package/dist/connectors/lusha/vendor.js +72 -0
- package/dist/connectors/lusha/vendor.js.map +1 -0
- package/dist/connectors/microsoft/client.d.ts +11 -3
- package/dist/connectors/microsoft/client.js +62 -8
- package/dist/connectors/microsoft/client.js.map +1 -1
- package/dist/connectors/netsuite/connector.json +4 -2
- package/dist/connectors/netsuite/vendor.d.ts +1 -1
- package/dist/connectors/netsuite/vendor.js +5 -6
- package/dist/connectors/netsuite/vendor.js.map +1 -1
- package/dist/connectors/odata/index.d.ts +1 -4
- package/dist/connectors/odata/index.js +12 -5
- package/dist/connectors/odata/index.js.map +1 -1
- package/dist/connectors/okta/connector.json +3 -2
- package/dist/connectors/okta/vendor.d.ts +1 -1
- package/dist/connectors/okta/vendor.js +7 -6
- package/dist/connectors/okta/vendor.js.map +1 -1
- package/dist/connectors/outlook-calendar/index.d.ts +1 -1
- package/dist/connectors/outlook-mail/index.d.ts +1 -1
- package/dist/connectors/pagerduty/connector.json +247 -0
- package/dist/connectors/qualys/connector.json +271 -0
- package/dist/connectors/safebase/connector.json +221 -0
- package/dist/connectors/salesforce/vendor.d.ts +1 -1
- package/dist/connectors/salesforce/vendor.js +9 -3
- package/dist/connectors/salesforce/vendor.js.map +1 -1
- package/dist/connectors/sap-s4hana/connector.json +1 -0
- package/dist/connectors/servicenow/vendor.d.ts +0 -1
- package/dist/connectors/servicenow/vendor.js +7 -10
- package/dist/connectors/servicenow/vendor.js.map +1 -1
- package/dist/connectors/sharepoint-files/connector.json +34 -3
- package/dist/connectors/sharepoint-files/documents.d.ts +7 -0
- package/dist/connectors/sharepoint-files/documents.js +212 -0
- package/dist/connectors/sharepoint-files/documents.js.map +1 -0
- package/dist/connectors/sharepoint-files/docx-worker.d.ts +7 -0
- package/dist/connectors/sharepoint-files/docx-worker.js +41 -0
- package/dist/connectors/sharepoint-files/docx-worker.js.map +1 -0
- package/dist/connectors/sharepoint-files/docx.d.ts +96 -0
- package/dist/connectors/sharepoint-files/docx.js +823 -0
- package/dist/connectors/sharepoint-files/docx.js.map +1 -0
- package/dist/connectors/sharepoint-files/index.d.ts +1 -4
- package/dist/connectors/sharepoint-files/index.js +2 -1
- package/dist/connectors/sharepoint-files/index.js.map +1 -1
- package/dist/connectors/sharepoint-files/ooxml.d.ts +19 -0
- package/dist/connectors/sharepoint-files/ooxml.js +179 -0
- package/dist/connectors/sharepoint-files/ooxml.js.map +1 -0
- package/dist/connectors/sharepoint-files/paging.d.ts +15 -0
- package/dist/connectors/sharepoint-files/paging.js +87 -0
- package/dist/connectors/sharepoint-files/paging.js.map +1 -0
- package/dist/connectors/sharepoint-files/parse-host.mjs +78 -0
- package/dist/connectors/sharepoint-files/pdf-worker.mjs +108 -0
- package/dist/connectors/sharepoint-files/pdf.d.ts +16 -0
- package/dist/connectors/sharepoint-files/pdf.js +19 -0
- package/dist/connectors/sharepoint-files/pdf.js.map +1 -0
- package/dist/connectors/sharepoint-files/sandbox.d.ts +19 -0
- package/dist/connectors/sharepoint-files/sandbox.js +176 -0
- package/dist/connectors/sharepoint-files/sandbox.js.map +1 -0
- package/dist/connectors/sharepoint-files/tools.d.ts +6 -0
- package/dist/connectors/sharepoint-files/tools.js +79 -4
- package/dist/connectors/sharepoint-files/tools.js.map +1 -1
- package/dist/connectors/slack/vendor.d.ts +1 -1
- package/dist/connectors/slack/vendor.js +32 -38
- package/dist/connectors/slack/vendor.js.map +1 -1
- package/dist/connectors/soap/index.d.ts +1 -4
- package/dist/connectors/soap/index.js +4 -3
- package/dist/connectors/soap/index.js.map +1 -1
- package/dist/connectors/sonarqube/connector.json +165 -0
- package/dist/connectors/sprout-social/connector.json +158 -0
- package/dist/connectors/sql/index.d.ts +1 -4
- package/dist/connectors/sql/index.js +2 -0
- package/dist/connectors/sql/index.js.map +1 -1
- package/dist/connectors/synthesia/connector.json +113 -0
- package/dist/connectors/teams/index.d.ts +1 -1
- package/dist/connectors/teams/tools.d.ts +6 -1
- package/dist/connectors/teams/tools.js +3 -2
- package/dist/connectors/teams/tools.js.map +1 -1
- package/dist/connectors/wordpress/connector.json +203 -0
- package/dist/connectors/workday/connector.json +6 -4
- package/dist/connectors/workday/vendor.d.ts +1 -1
- package/dist/connectors/workday/vendor.js +8 -4
- package/dist/connectors/workday/vendor.js.map +1 -1
- package/dist/connectors/zephyr/connector.json +192 -0
- package/dist/packages/connector-kit/src/common.d.ts +4 -5
- package/dist/packages/connector-kit/src/common.js +4 -1
- package/dist/packages/connector-kit/src/common.js.map +1 -1
- package/dist/packages/connector-kit/src/connector.d.ts +82 -34
- package/dist/packages/connector-kit/src/connector.js +163 -21
- package/dist/packages/connector-kit/src/connector.js.map +1 -1
- package/dist/packages/connector-kit/src/fetch.d.ts +6 -0
- package/dist/packages/connector-kit/src/fetch.js +44 -0
- package/dist/packages/connector-kit/src/fetch.js.map +1 -0
- package/dist/packages/connector-kit/src/index.d.ts +3 -3
- package/dist/packages/connector-kit/src/index.js +1 -0
- package/dist/packages/connector-kit/src/index.js.map +1 -1
- package/dist/packages/connector-kit/src/oauth.d.ts +3 -1
- package/dist/packages/connector-kit/src/oauth.js +16 -6
- package/dist/packages/connector-kit/src/oauth.js.map +1 -1
- package/dist/packages/connector-kit/src/types.d.ts +4 -1
- package/dist/packages/connector-kit/src/types.js.map +1 -1
- package/dist/packages/server/migrations/0008_internal_apps.sql +16 -0
- package/dist/packages/server/migrations/rollback/to-legacy.sql +2 -0
- package/dist/packages/server/src/api.d.ts +2486 -257
- package/dist/packages/server/src/api.js +84 -1
- package/dist/packages/server/src/api.js.map +1 -1
- package/dist/packages/server/src/app.js +26 -1
- package/dist/packages/server/src/app.js.map +1 -1
- package/dist/packages/server/src/builtin.d.ts +7 -3
- package/dist/packages/server/src/builtin.js +32 -0
- package/dist/packages/server/src/builtin.js.map +1 -1
- package/dist/packages/server/src/events/runtime.js +17 -10
- package/dist/packages/server/src/events/runtime.js.map +1 -1
- package/dist/packages/server/src/events/store.d.ts +2 -2
- package/dist/packages/server/src/index.d.ts +3 -3
- package/dist/packages/server/src/index.js +32 -22
- package/dist/packages/server/src/index.js.map +1 -1
- package/dist/packages/server/src/service.d.ts +1134 -14
- package/dist/packages/server/src/service.js +266 -21
- package/dist/packages/server/src/service.js.map +1 -1
- package/dist/packages/server/src/store.d.ts +43 -4
- package/dist/packages/server/src/store.js +79 -0
- package/dist/packages/server/src/store.js.map +1 -1
- package/package.json +4 -1
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ConnectError } from "./types.js";
|
|
2
|
+
// How every coded connector reaches its app. A redirect is refused, never followed, so a token
|
|
3
|
+
// or body cannot be carried to another host. A 429 means the app did not run the call, so when
|
|
4
|
+
// its Retry-After is short the call is sent again (at most RETRIES times); a longer wait is
|
|
5
|
+
// passed back as the 429.
|
|
6
|
+
const RETRIES = 2;
|
|
7
|
+
const MAX_WAIT_SECONDS = 10;
|
|
8
|
+
const guarded = new WeakSet();
|
|
9
|
+
const sleep = (seconds) => new Promise((r) => setTimeout(r, seconds * 1000));
|
|
10
|
+
/** Seconds to wait from a Retry-After header (seconds or an HTTP date), or null. */
|
|
11
|
+
export function retryAfter(header, now = Date.now()) {
|
|
12
|
+
if (!header)
|
|
13
|
+
return null;
|
|
14
|
+
const seconds = /^\d+$/.test(header.trim()) ? Number(header) : (Date.parse(header) - now) / 1000;
|
|
15
|
+
return Number.isFinite(seconds) ? Math.max(0, Math.ceil(seconds)) : null;
|
|
16
|
+
}
|
|
17
|
+
export function vendorFetch(name, fetchImpl = fetch, wait = sleep) {
|
|
18
|
+
if (guarded.has(fetchImpl))
|
|
19
|
+
return fetchImpl;
|
|
20
|
+
const safe = (async (input, init) => {
|
|
21
|
+
for (let attempt = 0;; attempt++) {
|
|
22
|
+
const res = await fetchImpl(input, { ...init, redirect: "manual" });
|
|
23
|
+
if (res.status >= 300 && res.status < 400) {
|
|
24
|
+
await res.body?.cancel();
|
|
25
|
+
throw new ConnectError(`${name} answered with a redirect (${res.status}), which is not followed. Check the address it was connected with.`);
|
|
26
|
+
}
|
|
27
|
+
const after = res.status === 429 ? retryAfter(res.headers.get("retry-after")) : null;
|
|
28
|
+
if (after === null || attempt >= RETRIES || after > MAX_WAIT_SECONDS)
|
|
29
|
+
return res;
|
|
30
|
+
await res.body?.cancel();
|
|
31
|
+
await wait(Math.max(after, 1));
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
guarded.add(safe);
|
|
35
|
+
return safe;
|
|
36
|
+
}
|
|
37
|
+
/** `${base}${path}`, refused when the path would leave base's origin (e.g. "@other.host"). */
|
|
38
|
+
export function vendorUrl(base, path) {
|
|
39
|
+
const url = `${base}${path}`;
|
|
40
|
+
if (URL.parse(url)?.origin !== new URL(base).origin)
|
|
41
|
+
throw new Error(`Refused a call leaving ${new URL(base).host}`);
|
|
42
|
+
return url;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../../packages/connector-kit/src/fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { audited, Denied, json, listLimit, mapLimit, textLimit, toolsets, VendorFailed, type ToolContext, type Toolset, } from "./common.js";
|
|
2
|
-
export type { Capability, Connector, ConnectorJson, ConnectorModule } from "./connector.js";
|
|
2
|
+
export type { Capability, Connector, ConnectorContext, ConnectorJson, ConnectorModule, } from "./connector.js";
|
|
3
|
+
export { retryAfter, vendorFetch, vendorUrl } from "./fetch.js";
|
|
3
4
|
export { clientCredentials, vendorError } from "./oauth.js";
|
|
4
|
-
export { ConnectError, type CheckInput, type Fetch, type Vendor, type VendorConnection, type VendorRequest, type VendorResponse, } from "./types.js";
|
|
5
|
-
export type { Limits } from "../../server/src/store.js";
|
|
5
|
+
export { ConnectError, type CheckInput, type Fetch, type Limits, type Vendor, type VendorConnection, type VendorRequest, type VendorResponse, } from "./types.js";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// What a connector written outside this repo builds on: the server package's ./kit export.
|
|
2
2
|
export { audited, Denied, json, listLimit, mapLimit, textLimit, toolsets, VendorFailed, } from "./common.js";
|
|
3
|
+
export { retryAfter, vendorFetch, vendorUrl } from "./fetch.js";
|
|
3
4
|
export { clientCredentials, vendorError } from "./oauth.js";
|
|
4
5
|
export { ConnectError, } from "./types.js";
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/connector-kit/src/index.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAE3F,OAAO,EACL,OAAO,EACP,MAAM,EACN,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,YAAY,GAGb,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/connector-kit/src/index.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAE3F,OAAO,EACL,OAAO,EACP,MAAM,EACN,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,YAAY,GAGb,MAAM,aAAa,CAAC;AAQrB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EACL,YAAY,GAQb,MAAM,YAAY,CAAC"}
|
|
@@ -4,9 +4,11 @@ type Credentials = {
|
|
|
4
4
|
clientId: string;
|
|
5
5
|
clientSecret: string;
|
|
6
6
|
scope?: string;
|
|
7
|
+
clientAuth?: "body" | "basic";
|
|
8
|
+
audience?: string;
|
|
7
9
|
};
|
|
8
10
|
export declare function vendorError(data: unknown): string;
|
|
9
|
-
export declare function clientCredentials(name: string,
|
|
11
|
+
export declare function clientCredentials(name: string, unguarded: Fetch): {
|
|
10
12
|
signIn: (c: Credentials) => Promise<undefined>;
|
|
11
13
|
token: (c: Credentials) => Promise<string>;
|
|
12
14
|
forget: (c: Credentials) => void;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
+
import { vendorFetch, vendorUrl } from "./fetch.js";
|
|
2
3
|
import { ConnectError, TokenCache, } from "./types.js";
|
|
3
4
|
// FedEx: { errors: [{ code, message }] }; Dell and most others: { error, error_description }.
|
|
4
5
|
export function vendorError(data) {
|
|
@@ -13,20 +14,29 @@ export function vendorError(data) {
|
|
|
13
14
|
const text = d.error_description ?? d.message ?? d.error;
|
|
14
15
|
return typeof text === "string" ? text.split(/\r?\n/)[0].slice(0, 300) : "";
|
|
15
16
|
}
|
|
16
|
-
export function clientCredentials(name,
|
|
17
|
+
export function clientCredentials(name, unguarded) {
|
|
18
|
+
const fetchImpl = vendorFetch(name, unguarded);
|
|
17
19
|
const tokens = new TokenCache();
|
|
18
20
|
const key = (c) => createHash("sha256")
|
|
19
|
-
.update(`${c.tokenUrl}\n${c.clientId}\n${c.clientSecret}\n${c.scope ?? ""}`)
|
|
21
|
+
.update(`${c.tokenUrl}\n${c.clientId}\n${c.clientSecret}\n${c.scope ?? ""}\n${c.audience ?? ""}`)
|
|
20
22
|
.digest("hex");
|
|
21
23
|
async function mint(c) {
|
|
24
|
+
const basic = c.clientAuth === "basic";
|
|
25
|
+
// RFC 6749 2.3.1: each form-encoded before joining.
|
|
26
|
+
const form = (v) => encodeURIComponent(v).replace(/%20/g, "+");
|
|
27
|
+
const pair = Buffer.from(`${form(c.clientId)}:${form(c.clientSecret)}`).toString("base64");
|
|
22
28
|
const res = await fetchImpl(c.tokenUrl, {
|
|
23
29
|
method: "POST",
|
|
24
|
-
headers: {
|
|
30
|
+
headers: {
|
|
31
|
+
"content-type": "application/x-www-form-urlencoded",
|
|
32
|
+
accept: "application/json",
|
|
33
|
+
...(basic ? { authorization: `Basic ${pair}` } : {}),
|
|
34
|
+
},
|
|
25
35
|
body: new URLSearchParams({
|
|
26
36
|
grant_type: "client_credentials",
|
|
27
|
-
client_id: c.clientId,
|
|
28
|
-
client_secret: c.clientSecret,
|
|
37
|
+
...(basic ? {} : { client_id: c.clientId, client_secret: c.clientSecret }),
|
|
29
38
|
...(c.scope ? { scope: c.scope } : {}),
|
|
39
|
+
...(c.audience ? { audience: c.audience } : {}),
|
|
30
40
|
}),
|
|
31
41
|
});
|
|
32
42
|
const raw = await res.text();
|
|
@@ -47,7 +57,7 @@ export function clientCredentials(name, fetchImpl) {
|
|
|
47
57
|
// A string body (e.g. Jamf's Classic API XML) goes as is, under the request's own
|
|
48
58
|
// content-type; anything else is JSON.
|
|
49
59
|
const asIs = typeof request.body === "string";
|
|
50
|
-
const res = await fetchImpl(
|
|
60
|
+
const res = await fetchImpl(vendorUrl(base, request.path), {
|
|
51
61
|
method: request.method,
|
|
52
62
|
headers: {
|
|
53
63
|
authorization: `Bearer ${access}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../../packages/connector-kit/src/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,UAAU,GAIX,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../../packages/connector-kit/src/oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export type Fetch = typeof fetch;
|
|
2
|
+
export type Limits = Record<string, string[] | string | Record<string, string>>;
|
|
2
3
|
export type VendorConnection = {
|
|
3
4
|
config: Record<string, string>;
|
|
4
5
|
secret: Record<string, string>;
|
|
@@ -8,7 +9,8 @@ export type VendorRequest = {
|
|
|
8
9
|
path: string;
|
|
9
10
|
body?: unknown;
|
|
10
11
|
headers?: Record<string, string>;
|
|
11
|
-
responseType?: "text";
|
|
12
|
+
responseType?: "text" | "bytes";
|
|
13
|
+
maxBytes?: number;
|
|
12
14
|
};
|
|
13
15
|
export type VendorResponse = {
|
|
14
16
|
status: number;
|
|
@@ -32,6 +34,7 @@ export type Vendor = {
|
|
|
32
34
|
checks?: Record<string, (connection: VendorConnection, input: CheckInput) => Promise<{
|
|
33
35
|
values: string[];
|
|
34
36
|
warning?: string;
|
|
37
|
+
labels?: Record<string, string>;
|
|
35
38
|
}>>;
|
|
36
39
|
};
|
|
37
40
|
export type SiteAccess = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../packages/connector-kit/src/types.ts"],"names":[],"mappings":"AAAA,yDAAyD;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../packages/connector-kit/src/types.ts"],"names":[],"mappings":"AAAA,yDAAyD;AA4GzD,gEAAgE;AAChE,MAAM,OAAO,YAAa,SAAQ,KAAK;CAAG;AAE1C,gEAAgE;AAChE,MAAM,OAAO,UAAU;IACrB,OAAO,GAAG,IAAI,GAAG,EAAgD,CAAC;IAElE,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,IAAyD;QAC9E,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;YAAE,OAAO,GAAG,CAAC,KAAK,CAAC;QACxD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAClF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
-- An organization's own apps, added through the admin API: a connector.json (with an http,
|
|
2
|
+
-- soap, odata or sql block) kept as written, run on the generic module of its kind. Never
|
|
3
|
+
-- holds a secret: those are entered at connect time and sealed in connections.
|
|
4
|
+
create table internal_apps (
|
|
5
|
+
organization_id uuid not null references organizations (id) on delete cascade,
|
|
6
|
+
id text not null check (id ~ '^[a-z0-9-]+$'),
|
|
7
|
+
definition jsonb not null,
|
|
8
|
+
created_by text not null,
|
|
9
|
+
created_at timestamptz not null default now(),
|
|
10
|
+
updated_by text not null,
|
|
11
|
+
updated_at timestamptz not null default now(),
|
|
12
|
+
primary key (organization_id, id)
|
|
13
|
+
);
|
|
14
|
+
alter table internal_apps enable row level security;
|
|
15
|
+
alter table internal_apps force row level security;
|
|
16
|
+
create policy service on internal_apps for all to current_user using (true) with check (true);
|
|
@@ -12,6 +12,8 @@ drop view if exists public.agent_connect_agents, public.agent_connect_providers,
|
|
|
12
12
|
public.agent_connect_teams_conversations, public.agent_connect_teams_events,
|
|
13
13
|
public.agent_connect_teams_triggers, public.agent_connect_teams_runs,
|
|
14
14
|
public.agent_connect_teams_spend;
|
|
15
|
+
-- 0008: organizations' own apps, which 0.7.5 does not have.
|
|
16
|
+
drop table agent_connect.internal_apps;
|
|
15
17
|
-- 0007: app events and their triggers, which 0.7.5 does not have.
|
|
16
18
|
drop table agent_connect.event_runs, agent_connect.event_triggers, agent_connect.app_events,
|
|
17
19
|
agent_connect.event_subscriptions;
|