@cat-factory/integrations 0.18.3 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/accountSettings/AccountSettingsService.d.ts +47 -0
- package/dist/modules/accountSettings/AccountSettingsService.d.ts.map +1 -0
- package/dist/modules/accountSettings/AccountSettingsService.js +145 -0
- package/dist/modules/accountSettings/AccountSettingsService.js.map +1 -0
- package/dist/modules/incidentEnrichment/WorkspaceIncidentEnrichmentProvider.d.ts +23 -0
- package/dist/modules/incidentEnrichment/WorkspaceIncidentEnrichmentProvider.d.ts.map +1 -0
- package/dist/modules/incidentEnrichment/WorkspaceIncidentEnrichmentProvider.js +50 -0
- package/dist/modules/incidentEnrichment/WorkspaceIncidentEnrichmentProvider.js.map +1 -0
- package/dist/modules/slack/SlackConnectionService.d.ts +20 -10
- package/dist/modules/slack/SlackConnectionService.d.ts.map +1 -1
- package/dist/modules/slack/SlackConnectionService.js +20 -12
- package/dist/modules/slack/SlackConnectionService.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -72,6 +72,8 @@ export { DatadogClient, type DatadogCredentials, type DatadogClientOptions, } fr
|
|
|
72
72
|
export { OBSERVABILITY_CIPHER_INFO, DatadogApiError, normalizeDatadogSite, datadogApiBase, } from './modules/datadog/datadog.logic.js';
|
|
73
73
|
export { PagerDutyEnrichmentProvider, type PagerDutyEnrichmentProviderOptions, } from './modules/pagerduty/PagerDutyEnrichmentProvider.js';
|
|
74
74
|
export { IncidentIoEnrichmentProvider, type IncidentIoEnrichmentProviderOptions, } from './modules/incidentio/IncidentIoEnrichmentProvider.js';
|
|
75
|
+
export { WorkspaceIncidentEnrichmentProvider, INCIDENT_ENRICHMENT_CIPHER_INFO, type WorkspaceIncidentEnrichmentProviderDependencies, } from './modules/incidentEnrichment/WorkspaceIncidentEnrichmentProvider.js';
|
|
76
|
+
export { AccountSettingsService, ACCOUNT_SETTINGS_CIPHER_INFO, type AccountSettingsServiceDependencies, type ResolvedAccountSettings, } from './modules/accountSettings/AccountSettingsService.js';
|
|
75
77
|
export { SendGridEmailSender, ResendEmailSender, createEmailSender, EMAIL_CIPHER_INFO, type EmailProviderConfig, type SendGridConfig, type ResendConfig, } from './modules/email/adapters.js';
|
|
76
78
|
export { EmailConnectionService, type EmailConnectionServiceDependencies, type EmailConnection, } from './modules/email/EmailConnectionService.js';
|
|
77
79
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,yBAAyB,EACzB,KAAK,qCAAqC,GAC3C,MAAM,+CAA+C,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,KAAK,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AACjG,OAAO,EACL,iBAAiB,EACjB,KAAK,6BAA6B,GACnC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,KAAK,0BAA0B,EAAE,MAAM,oCAAoC,CAAA;AACpG,OAAO,KAAK,gBAAgB,MAAM,sCAAsC,CAAA;AACxE,OAAO,EACL,uBAAuB,EACvB,KAAK,mCAAmC,EACxC,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,6CAA6C,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AAEtE,OAAO,EACL,yBAAyB,EACzB,KAAK,qCAAqC,GAC3C,MAAM,kDAAkD,CAAA;AACzD,OAAO,EACL,8BAA8B,EAC9B,KAAK,0CAA0C,GAChD,MAAM,uDAAuD,CAAA;AAC9D,OAAO,EACL,qBAAqB,EACrB,KAAK,iCAAiC,EACtC,gBAAgB,GACjB,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,sBAAsB,EACtB,KAAK,kCAAkC,GACxC,MAAM,+CAA+C,CAAA;AACtD,OAAO,EACL,mBAAmB,EACnB,KAAK,+BAA+B,EACpC,KAAK,WAAW,GACjB,MAAM,4CAA4C,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAA;AAClF,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AACxE,OAAO,KAAK,eAAe,MAAM,yCAAyC,CAAA;AAC1E,OAAO,KAAK,WAAW,MAAM,qCAAqC,CAAA;AAClE,OAAO,KAAK,eAAe,MAAM,0CAA0C,CAAA;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAA;AAGjF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAA;AAClG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAA;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAA;AAE9E,OAAO,EACL,qBAAqB,EACrB,KAAK,iCAAiC,GACvC,MAAM,0CAA0C,CAAA;AACjD,OAAO,EACL,iBAAiB,EACjB,KAAK,6BAA6B,EAClC,YAAY,GACb,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACL,eAAe,EACf,KAAK,2BAA2B,GACjC,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,EACpB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAA;AAC5D,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EACL,oBAAoB,EACpB,KAAK,gCAAgC,EACrC,KAAK,cAAc,EACnB,KAAK,SAAS,GACf,MAAM,2CAA2C,CAAA;AAClD,OAAO,KAAK,eAAe,MAAM,wCAAwC,CAAA;AACzE,OAAO,KAAK,kBAAkB,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sCAAsC,CAAA;AAClG,OAAO,EACL,qBAAqB,EACrB,KAAK,iCAAiC,GACvC,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,yBAAyB,EACzB,KAAK,uBAAuB,GAC7B,MAAM,0CAA0C,CAAA;AACjD,OAAO,KAAK,iBAAiB,MAAM,wCAAwC,CAAA;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAA;AACjF,OAAO,EACL,oBAAoB,EACpB,KAAK,gCAAgC,GACtC,MAAM,yCAAyC,CAAA;AAGhD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAE5E,OAAO,EACL,4BAA4B,EAC5B,KAAK,wCAAwC,EAC7C,KAAK,kBAAkB,EACvB,oBAAoB,GACrB,MAAM,wDAAwD,CAAA;AAC/D,OAAO,EACL,8BAA8B,EAC9B,KAAK,0CAA0C,EAC/C,KAAK,aAAa,EAClB,KAAK,mBAAmB,GACzB,MAAM,0DAA0D,CAAA;AACjE,OAAO,EACL,0BAA0B,EAC1B,KAAK,sCAAsC,GAC5C,MAAM,sDAAsD,CAAA;AAC7D,OAAO,KAAK,iBAAiB,MAAM,8CAA8C,CAAA;AAGjF,OAAO,EACL,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,8CAA8C,CAAA;AAErD,OAAO,EACL,2BAA2B,EAC3B,KAAK,uCAAuC,EAC5C,KAAK,kBAAkB,GACxB,MAAM,kDAAkD,CAAA;AACzD,OAAO,KAAK,YAAY,MAAM,oCAAoC,CAAA;AAIlE,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,6BAA6B,GACnC,MAAM,6CAA6C,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAK9E,OAAO,EACL,wBAAwB,EACxB,KAAK,oCAAoC,GAC1C,MAAM,6CAA6C,CAAA;AACpD,OAAO,EACL,sBAAsB,EACtB,KAAK,kCAAkC,GACxC,MAAM,2CAA2C,CAAA;AAClD,OAAO,EACL,oBAAoB,EACpB,KAAK,gCAAgC,GACtC,MAAM,yCAAyC,CAAA;AAChD,OAAO,EACL,yBAAyB,EACzB,KAAK,qCAAqC,GAC3C,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,cAAc,EACd,aAAa,EACb,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACtB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,YAAY,GACb,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,2BAA2B,EAC3B,KAAK,uCAAuC,EAC5C,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,GAC7B,MAAM,oDAAoD,CAAA;AAC3D,OAAO,EACL,aAAa,EACb,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACL,2BAA2B,EAC3B,KAAK,uCAAuC,EAC5C,KAAK,mBAAmB,EACxB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,oDAAoD,CAAA;AAC3D,OAAO,EACL,yBAAyB,EACzB,KAAK,qCAAqC,EAC1C,KAAK,qBAAqB,GAC3B,MAAM,kDAAkD,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAA;AAC1E,OAAO,EACL,iBAAiB,EACjB,KAAK,6BAA6B,GACnC,MAAM,0CAA0C,CAAA;AACjD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EACL,wBAAwB,EACxB,KAAK,oCAAoC,EACzC,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,iDAAiD,CAAA;AACxD,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AACxE,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,WAAW,EACX,KAAK,kBAAkB,GACxB,MAAM,wCAAwC,CAAA;AAM/C,OAAO,EACL,6BAA6B,EAC7B,KAAK,yCAAyC,EAC9C,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,GACnC,MAAM,0DAA0D,CAAA;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAA;AAClF,OAAO,EACL,2BAA2B,EAC3B,KAAK,uBAAuB,GAC7B,MAAM,kDAAkD,CAAA;AACzD,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,yBAAyB,EACzB,eAAe,EACf,oBAAoB,EACpB,cAAc,GACf,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,2BAA2B,EAC3B,KAAK,kCAAkC,GACxC,MAAM,oDAAoD,CAAA;AAC3D,OAAO,EACL,4BAA4B,EAC5B,KAAK,mCAAmC,GACzC,MAAM,sDAAsD,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -89,6 +89,8 @@ export { DatadogClient, } from './modules/datadog/DatadogClient.js';
|
|
|
89
89
|
export { OBSERVABILITY_CIPHER_INFO, DatadogApiError, normalizeDatadogSite, datadogApiBase, } from './modules/datadog/datadog.logic.js';
|
|
90
90
|
export { PagerDutyEnrichmentProvider, } from './modules/pagerduty/PagerDutyEnrichmentProvider.js';
|
|
91
91
|
export { IncidentIoEnrichmentProvider, } from './modules/incidentio/IncidentIoEnrichmentProvider.js';
|
|
92
|
+
export { WorkspaceIncidentEnrichmentProvider, INCIDENT_ENRICHMENT_CIPHER_INFO, } from './modules/incidentEnrichment/WorkspaceIncidentEnrichmentProvider.js';
|
|
93
|
+
export { AccountSettingsService, ACCOUNT_SETTINGS_CIPHER_INFO, } from './modules/accountSettings/AccountSettingsService.js';
|
|
92
94
|
export { SendGridEmailSender, ResendEmailSender, createEmailSender, EMAIL_CIPHER_INFO, } from './modules/email/adapters.js';
|
|
93
95
|
export { EmailConnectionService, } from './modules/email/EmailConnectionService.js';
|
|
94
96
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { AccountSettingsRepository, Clock, SecretCipher } from '@cat-factory/kernel';
|
|
2
|
+
import type { AccountSettingsConfig, AccountSettingsView, SlackOAuthSecret, UpdateAccountSettingsInput, WebSearchSecret } from '@cat-factory/contracts';
|
|
3
|
+
/** HKDF domain tag separating the grouped account-settings secret blob from other ciphers. */
|
|
4
|
+
export declare const ACCOUNT_SETTINGS_CIPHER_INFO = "cat-factory:account-settings";
|
|
5
|
+
/** A fully-resolved (decrypted) view of an account's settings, for runtime consumers. */
|
|
6
|
+
export interface ResolvedAccountSettings {
|
|
7
|
+
config: AccountSettingsConfig;
|
|
8
|
+
slackOAuth?: SlackOAuthSecret;
|
|
9
|
+
webSearch?: WebSearchSecret;
|
|
10
|
+
}
|
|
11
|
+
export interface AccountSettingsServiceDependencies {
|
|
12
|
+
accountSettingsRepository: AccountSettingsRepository;
|
|
13
|
+
/** Seals the grouped secrets blob (domain tag {@link ACCOUNT_SETTINGS_CIPHER_INFO}). */
|
|
14
|
+
secretCipher: SecretCipher;
|
|
15
|
+
clock: Clock;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Owns per-account deployment settings: a non-secret `config` blob + ONE sealed secrets
|
|
19
|
+
* blob (Slack OAuth / web-search / Langfuse). {@link resolve} decrypts + caches (short TTL)
|
|
20
|
+
* for runtime consumers; {@link read}/{@link write} back the admin UI (secrets write-only —
|
|
21
|
+
* never returned). A single instance per facade holds the cache across requests; writes
|
|
22
|
+
* {@link invalidate} it so a change takes effect immediately.
|
|
23
|
+
*/
|
|
24
|
+
export declare class AccountSettingsService {
|
|
25
|
+
private readonly repo;
|
|
26
|
+
private readonly cipher;
|
|
27
|
+
private readonly clock;
|
|
28
|
+
private readonly cache;
|
|
29
|
+
constructor(deps: AccountSettingsServiceDependencies);
|
|
30
|
+
/** The resolved (decrypted) settings for an account, cache-first. Defaults when no row. */
|
|
31
|
+
resolve(accountId: string): Promise<ResolvedAccountSettings>;
|
|
32
|
+
/** Drop an account's cached settings (after a write, so the change is seen at once). */
|
|
33
|
+
invalidate(accountId: string): void;
|
|
34
|
+
/** Admin read: config + non-secret summary; NEVER decrypts/returns the secrets. */
|
|
35
|
+
read(accountId: string): Promise<AccountSettingsView>;
|
|
36
|
+
/**
|
|
37
|
+
* Admin write. `config` (when present) fully replaces the non-secret config. Each
|
|
38
|
+
* secrets group: absent ⇒ leave unchanged, `null` ⇒ clear, value ⇒ set. Re-seals the
|
|
39
|
+
* merged blob, refreshes the summary, and invalidates the cache.
|
|
40
|
+
*/
|
|
41
|
+
write(accountId: string, input: UpdateAccountSettingsInput): Promise<AccountSettingsView>;
|
|
42
|
+
/** Decrypt + parse the sealed secrets blob. Throws when it can't be opened/parsed. */
|
|
43
|
+
private decryptSecrets;
|
|
44
|
+
/** Tolerant decrypt for the runtime read path: an unopenable blob ⇒ no secrets. */
|
|
45
|
+
private openSecrets;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=AccountSettingsService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountSettingsService.d.ts","sourceRoot":"","sources":["../../../src/modules/accountSettings/AccountSettingsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEzF,OAAO,KAAK,EACV,qBAAqB,EAGrB,mBAAmB,EACnB,gBAAgB,EAChB,0BAA0B,EAC1B,eAAe,EAChB,MAAM,wBAAwB,CAAA;AAQ/B,8FAA8F;AAC9F,eAAO,MAAM,4BAA4B,iCAAiC,CAAA;AAK1E,yFAAyF;AACzF,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,qBAAqB,CAAA;IAC7B,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,SAAS,CAAC,EAAE,eAAe,CAAA;CAC5B;AAED,MAAM,WAAW,kCAAkC;IACjD,yBAAyB,EAAE,yBAAyB,CAAA;IACpD,wFAAwF;IACxF,YAAY,EAAE,YAAY,CAAA;IAC1B,KAAK,EAAE,KAAK,CAAA;CACb;AAED;;;;;;GAMG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2B;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2E;IAEjG,YAAY,IAAI,EAAE,kCAAkC,EAInD;IAED,2FAA2F;IACrF,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAcjE;IAED,wFAAwF;IACxF,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAElC;IAED,mFAAmF;IAC7E,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAS1D;IAED;;;;OAIG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAkC9F;IAED,sFAAsF;YACxE,cAAc;IAW5B,mFAAmF;YACrE,WAAW;CAO1B"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { ConflictError } from '@cat-factory/kernel';
|
|
2
|
+
import { DEFAULT_ACCOUNT_SETTINGS_CONFIG, accountSettingsSummary, parseAccountSettingsConfig, parseAccountSettingsSecrets, } from '@cat-factory/contracts';
|
|
3
|
+
/** HKDF domain tag separating the grouped account-settings secret blob from other ciphers. */
|
|
4
|
+
export const ACCOUNT_SETTINGS_CIPHER_INFO = 'cat-factory:account-settings';
|
|
5
|
+
/** How long a resolved account-settings entry is cached before reloading (ms). */
|
|
6
|
+
const CACHE_TTL_MS = 30_000;
|
|
7
|
+
/**
|
|
8
|
+
* Owns per-account deployment settings: a non-secret `config` blob + ONE sealed secrets
|
|
9
|
+
* blob (Slack OAuth / web-search / Langfuse). {@link resolve} decrypts + caches (short TTL)
|
|
10
|
+
* for runtime consumers; {@link read}/{@link write} back the admin UI (secrets write-only —
|
|
11
|
+
* never returned). A single instance per facade holds the cache across requests; writes
|
|
12
|
+
* {@link invalidate} it so a change takes effect immediately.
|
|
13
|
+
*/
|
|
14
|
+
export class AccountSettingsService {
|
|
15
|
+
repo;
|
|
16
|
+
cipher;
|
|
17
|
+
clock;
|
|
18
|
+
cache = new Map();
|
|
19
|
+
constructor(deps) {
|
|
20
|
+
this.repo = deps.accountSettingsRepository;
|
|
21
|
+
this.cipher = deps.secretCipher;
|
|
22
|
+
this.clock = deps.clock;
|
|
23
|
+
}
|
|
24
|
+
/** The resolved (decrypted) settings for an account, cache-first. Defaults when no row. */
|
|
25
|
+
async resolve(accountId) {
|
|
26
|
+
const now = this.clock.now();
|
|
27
|
+
const cached = this.cache.get(accountId);
|
|
28
|
+
if (cached && cached.expiresAt > now)
|
|
29
|
+
return cached.value;
|
|
30
|
+
const record = await this.repo.getByAccount(accountId);
|
|
31
|
+
const config = record ? parseConfig(record.config) : DEFAULT_ACCOUNT_SETTINGS_CONFIG;
|
|
32
|
+
const secrets = record?.secretsCipher ? await this.openSecrets(record.secretsCipher) : {};
|
|
33
|
+
const value = {
|
|
34
|
+
config,
|
|
35
|
+
...(secrets.slackOAuth ? { slackOAuth: secrets.slackOAuth } : {}),
|
|
36
|
+
...(secrets.webSearch ? { webSearch: secrets.webSearch } : {}),
|
|
37
|
+
};
|
|
38
|
+
this.cache.set(accountId, { value, expiresAt: now + CACHE_TTL_MS });
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
41
|
+
/** Drop an account's cached settings (after a write, so the change is seen at once). */
|
|
42
|
+
invalidate(accountId) {
|
|
43
|
+
this.cache.delete(accountId);
|
|
44
|
+
}
|
|
45
|
+
/** Admin read: config + non-secret summary; NEVER decrypts/returns the secrets. */
|
|
46
|
+
async read(accountId) {
|
|
47
|
+
const record = await this.repo.getByAccount(accountId);
|
|
48
|
+
if (!record) {
|
|
49
|
+
return {
|
|
50
|
+
config: DEFAULT_ACCOUNT_SETTINGS_CONFIG,
|
|
51
|
+
summary: accountSettingsSummary({}),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return { config: parseConfig(record.config), summary: parseSummary(record.summary) };
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Admin write. `config` (when present) fully replaces the non-secret config. Each
|
|
58
|
+
* secrets group: absent ⇒ leave unchanged, `null` ⇒ clear, value ⇒ set. Re-seals the
|
|
59
|
+
* merged blob, refreshes the summary, and invalidates the cache.
|
|
60
|
+
*/
|
|
61
|
+
async write(accountId, input) {
|
|
62
|
+
const now = this.clock.now();
|
|
63
|
+
const existing = await this.repo.getByAccount(accountId);
|
|
64
|
+
const config = input.config
|
|
65
|
+
? parseConfig(JSON.stringify(input.config))
|
|
66
|
+
: existing
|
|
67
|
+
? parseConfig(existing.config)
|
|
68
|
+
: DEFAULT_ACCOUNT_SETTINGS_CONFIG;
|
|
69
|
+
// Decrypt the stored blob STRICTLY before re-sealing: if it can't be opened (e.g. the
|
|
70
|
+
// encryption key changed) refuse rather than silently dropping the un-edited group(s) on
|
|
71
|
+
// this partial write. The operator clears + re-enters to reset. (resolve() stays tolerant
|
|
72
|
+
// — a corrupt blob disables features on read, but a write must never destroy secrets.)
|
|
73
|
+
const current = existing?.secretsCipher ? await this.decryptSecrets(existing.secretsCipher) : {};
|
|
74
|
+
const merged = { ...current };
|
|
75
|
+
if (input.secrets) {
|
|
76
|
+
for (const key of ['slackOAuth', 'webSearch']) {
|
|
77
|
+
if (!(key in input.secrets))
|
|
78
|
+
continue;
|
|
79
|
+
const value = input.secrets[key];
|
|
80
|
+
if (value == null)
|
|
81
|
+
delete merged[key];
|
|
82
|
+
else
|
|
83
|
+
merged[key] = value;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const hasSecrets = Boolean(merged.slackOAuth || merged.webSearch);
|
|
87
|
+
const summary = accountSettingsSummary(merged);
|
|
88
|
+
await this.repo.upsert({
|
|
89
|
+
accountId,
|
|
90
|
+
config: JSON.stringify(config),
|
|
91
|
+
secretsCipher: hasSecrets ? await this.cipher.encrypt(JSON.stringify(merged)) : null,
|
|
92
|
+
summary: JSON.stringify(summary),
|
|
93
|
+
createdAt: existing?.createdAt ?? now,
|
|
94
|
+
updatedAt: now,
|
|
95
|
+
});
|
|
96
|
+
this.invalidate(accountId);
|
|
97
|
+
return { config, summary };
|
|
98
|
+
}
|
|
99
|
+
/** Decrypt + parse the sealed secrets blob. Throws when it can't be opened/parsed. */
|
|
100
|
+
async decryptSecrets(sealed) {
|
|
101
|
+
try {
|
|
102
|
+
return parseAccountSettingsSecrets(JSON.parse(await this.cipher.decrypt(sealed)));
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
throw new ConflictError('The stored account settings secrets could not be decrypted (the encryption key may ' +
|
|
106
|
+
'have changed). Clear the deployment integrations and re-enter them to reset.');
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/** Tolerant decrypt for the runtime read path: an unopenable blob ⇒ no secrets. */
|
|
110
|
+
async openSecrets(sealed) {
|
|
111
|
+
try {
|
|
112
|
+
return await this.decryptSecrets(sealed);
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return {};
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/** Parse + default a stored config blob, tolerating a malformed/empty value. */
|
|
120
|
+
function parseConfig(raw) {
|
|
121
|
+
try {
|
|
122
|
+
return parseAccountSettingsConfig(JSON.parse(raw));
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
return DEFAULT_ACCOUNT_SETTINGS_CONFIG;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/** Parse the stored non-secret summary, tolerating a malformed/empty value. */
|
|
129
|
+
function parseSummary(raw) {
|
|
130
|
+
try {
|
|
131
|
+
const parsed = JSON.parse(raw);
|
|
132
|
+
if (parsed && typeof parsed === 'object') {
|
|
133
|
+
const o = parsed;
|
|
134
|
+
return {
|
|
135
|
+
slackOAuthConfigured: Boolean(o.slackOAuthConfigured),
|
|
136
|
+
webSearch: o.webSearch === 'brave' || o.webSearch === 'searxng' ? o.webSearch : null,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
// fall through
|
|
142
|
+
}
|
|
143
|
+
return accountSettingsSummary({});
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=AccountSettingsService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountSettingsService.js","sourceRoot":"","sources":["../../../src/modules/accountSettings/AccountSettingsService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { IncidentEnrichmentConnectionRepository, IncidentEnrichmentProvider, IncidentMatchQuery, IncidentUpdate, SecretCipher } from '@cat-factory/kernel';
|
|
2
|
+
/** HKDF domain tag separating the incident-enrichment credential blob from other ciphers. */
|
|
3
|
+
export declare const INCIDENT_ENRICHMENT_CIPHER_INFO = "cat-factory:incident-enrichment";
|
|
4
|
+
export interface WorkspaceIncidentEnrichmentProviderDependencies {
|
|
5
|
+
incidentEnrichmentConnectionRepository: IncidentEnrichmentConnectionRepository;
|
|
6
|
+
/** Seals/opens the per-workspace credentials (domain tag 'cat-factory:incident-enrichment'). */
|
|
7
|
+
secretCipher: SecretCipher;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Resolves a workspace's incident-enrichment credentials at enrichment time (instead of
|
|
11
|
+
* a deployment-wide boot-built composite), decrypts the sealed blob, builds the
|
|
12
|
+
* PagerDuty / incident.io providers it configures, and fans the update across them. A
|
|
13
|
+
* workspace with no connection (or no configured provider) is a no-op — best-effort,
|
|
14
|
+
* never throwing into the caller, mirroring `CompositeIncidentEnrichmentProvider`.
|
|
15
|
+
*/
|
|
16
|
+
export declare class WorkspaceIncidentEnrichmentProvider implements IncidentEnrichmentProvider {
|
|
17
|
+
private readonly connections;
|
|
18
|
+
private readonly cipher;
|
|
19
|
+
constructor(deps: WorkspaceIncidentEnrichmentProviderDependencies);
|
|
20
|
+
enrich(query: IncidentMatchQuery, update: IncidentUpdate): Promise<void>;
|
|
21
|
+
private resolve;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=WorkspaceIncidentEnrichmentProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkspaceIncidentEnrichmentProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/incidentEnrichment/WorkspaceIncidentEnrichmentProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sCAAsC,EACtC,0BAA0B,EAC1B,kBAAkB,EAClB,cAAc,EACd,YAAY,EACb,MAAM,qBAAqB,CAAA;AAM5B,6FAA6F;AAC7F,eAAO,MAAM,+BAA+B,oCAAoC,CAAA;AAEhF,MAAM,WAAW,+CAA+C;IAC9D,sCAAsC,EAAE,sCAAsC,CAAA;IAC9E,gGAAgG;IAChG,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED;;;;;;GAMG;AACH,qBAAa,mCAAoC,YAAW,0BAA0B;IACpF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwC;IACpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IAErC,YAAY,IAAI,EAAE,+CAA+C,EAGhE;IAEK,MAAM,CAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7E;YAEa,OAAO;CAqBtB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { CompositeIncidentEnrichmentProvider } from '@cat-factory/kernel';
|
|
2
|
+
import { parseIncidentEnrichmentCredentials } from '@cat-factory/contracts';
|
|
3
|
+
import { PagerDutyEnrichmentProvider } from '../pagerduty/PagerDutyEnrichmentProvider.js';
|
|
4
|
+
import { IncidentIoEnrichmentProvider } from '../incidentio/IncidentIoEnrichmentProvider.js';
|
|
5
|
+
/** HKDF domain tag separating the incident-enrichment credential blob from other ciphers. */
|
|
6
|
+
export const INCIDENT_ENRICHMENT_CIPHER_INFO = 'cat-factory:incident-enrichment';
|
|
7
|
+
/**
|
|
8
|
+
* Resolves a workspace's incident-enrichment credentials at enrichment time (instead of
|
|
9
|
+
* a deployment-wide boot-built composite), decrypts the sealed blob, builds the
|
|
10
|
+
* PagerDuty / incident.io providers it configures, and fans the update across them. A
|
|
11
|
+
* workspace with no connection (or no configured provider) is a no-op — best-effort,
|
|
12
|
+
* never throwing into the caller, mirroring `CompositeIncidentEnrichmentProvider`.
|
|
13
|
+
*/
|
|
14
|
+
export class WorkspaceIncidentEnrichmentProvider {
|
|
15
|
+
connections;
|
|
16
|
+
cipher;
|
|
17
|
+
constructor(deps) {
|
|
18
|
+
this.connections = deps.incidentEnrichmentConnectionRepository;
|
|
19
|
+
this.cipher = deps.secretCipher;
|
|
20
|
+
}
|
|
21
|
+
async enrich(query, update) {
|
|
22
|
+
const composite = await this.resolve(query.workspaceId);
|
|
23
|
+
if (!composite)
|
|
24
|
+
return;
|
|
25
|
+
await composite.enrich(query, update);
|
|
26
|
+
}
|
|
27
|
+
async resolve(workspaceId) {
|
|
28
|
+
const record = await this.connections.get(workspaceId);
|
|
29
|
+
if (!record)
|
|
30
|
+
return null;
|
|
31
|
+
let credentials;
|
|
32
|
+
try {
|
|
33
|
+
credentials = parseIncidentEnrichmentCredentials(JSON.parse(await this.cipher.decrypt(record.credentials)));
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
// A drifted/corrupted row must never break a best-effort enrichment.
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
const providers = [];
|
|
40
|
+
if (credentials.pagerDuty)
|
|
41
|
+
providers.push(new PagerDutyEnrichmentProvider(credentials.pagerDuty));
|
|
42
|
+
if (credentials.incidentIo) {
|
|
43
|
+
providers.push(new IncidentIoEnrichmentProvider(credentials.incidentIo));
|
|
44
|
+
}
|
|
45
|
+
if (providers.length === 0)
|
|
46
|
+
return null;
|
|
47
|
+
return new CompositeIncidentEnrichmentProvider(providers);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=WorkspaceIncidentEnrichmentProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkspaceIncidentEnrichmentProvider.js","sourceRoot":"","sources":["../../../src/modules/incidentEnrichment/WorkspaceIncidentEnrichmentProvider.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mCAAmC,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAA;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAA;AAE5F,6FAA6F;AAC7F,MAAM,CAAC,MAAM,+BAA+B,GAAG,iCAAiC,CAAA;AAQhF;;;;;;GAMG;AACH,MAAM,OAAO,mCAAmC;IAC7B,WAAW,CAAwC;IACnD,MAAM,CAAc;IAErC,YAAY,IAAqD;QAC/D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,sCAAsC,CAAA;QAC9D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAyB,EAAE,MAAsB;QAC5D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACvD,IAAI,CAAC,SAAS;YAAE,OAAM;QACtB,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,WAAmB;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACtD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAA;QACxB,IAAI,WAAW,CAAA;QACf,IAAI,CAAC;YACH,WAAW,GAAG,kCAAkC,CAC9C,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAC1D,CAAA;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;YACrE,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,SAAS,GAAiC,EAAE,CAAA;QAClD,IAAI,WAAW,CAAC,SAAS;YACvB,SAAS,CAAC,IAAI,CAAC,IAAI,2BAA2B,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAA;QACxE,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,IAAI,4BAA4B,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAA;QAC1E,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QACvC,OAAO,IAAI,mCAAmC,CAAC,SAAS,CAAC,CAAA;IAC3D,CAAC;CACF"}
|
|
@@ -8,21 +8,31 @@ export interface SlackConnectionServiceDependencies {
|
|
|
8
8
|
clock: Clock;
|
|
9
9
|
/** Slack Web API client; defaults to a fetch-backed one. */
|
|
10
10
|
slackClient?: SlackApiClient;
|
|
11
|
-
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Resolve the Slack app OAuth credentials for an account (the install-scope key), or
|
|
13
|
+
* undefined when the account hasn't registered a Slack app. Replaces the old boot-time
|
|
14
|
+
* `oauth` config: the creds now live per-account in the DB (account settings), resolved
|
|
15
|
+
* dynamically so an admin can set/rotate them without a redeploy. Absent ⇒ OAuth
|
|
16
|
+
* onboarding isn't offered (manual bot-token paste still works).
|
|
17
|
+
*/
|
|
18
|
+
resolveOAuth?: (accountKey: string) => Promise<SlackOAuthConfig | undefined>;
|
|
19
|
+
}
|
|
20
|
+
/** Slack app OAuth credentials (the deployment's registered Slack app, per-account). */
|
|
21
|
+
export interface SlackOAuthConfig {
|
|
22
|
+
clientId: string;
|
|
23
|
+
clientSecret: string;
|
|
24
|
+
redirectUrl: string;
|
|
17
25
|
}
|
|
18
26
|
export declare class SlackConnectionService {
|
|
19
27
|
private readonly deps;
|
|
20
28
|
private readonly slack;
|
|
21
29
|
constructor(deps: SlackConnectionServiceDependencies);
|
|
22
|
-
/** Whether OAuth onboarding is available
|
|
23
|
-
|
|
24
|
-
/** Build the "Add to Slack" authorize URL
|
|
25
|
-
buildInstallUrl(state: string, scopes: string[]): string
|
|
30
|
+
/** Whether OAuth onboarding is available for a workspace's account (creds configured). */
|
|
31
|
+
oauthEnabled(workspaceId: string): Promise<boolean>;
|
|
32
|
+
/** Build the "Add to Slack" authorize URL for a workspace's account, embedding `state`. */
|
|
33
|
+
buildInstallUrl(workspaceId: string, state: string, scopes: string[]): Promise<string>;
|
|
34
|
+
/** Resolve the OAuth creds for the workspace's account (the install-scope key). */
|
|
35
|
+
private resolveOAuth;
|
|
26
36
|
/** Connect by pasting a bot token (the always-available path). */
|
|
27
37
|
connectWithToken(workspaceId: string, token: string): Promise<SlackConnection>;
|
|
28
38
|
/** Connect by exchanging an OAuth authorization code for a bot token. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlackConnectionService.d.ts","sourceRoot":"","sources":["../../../src/modules/slack/SlackConnectionService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACnF,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EAEf,yBAAyB,EAC1B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAapD,MAAM,WAAW,kCAAkC;IACjD,yBAAyB,EAAE,yBAAyB,CAAA;IACpD,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,YAAY,EAAE,YAAY,CAAA;IAC1B,KAAK,EAAE,KAAK,CAAA;IACZ,4DAA4D;IAC5D,WAAW,CAAC,EAAE,cAAc,CAAA;IAC5B
|
|
1
|
+
{"version":3,"file":"SlackConnectionService.d.ts","sourceRoot":"","sources":["../../../src/modules/slack/SlackConnectionService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACnF,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EAEf,yBAAyB,EAC1B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAapD,MAAM,WAAW,kCAAkC;IACjD,yBAAyB,EAAE,yBAAyB,CAAA;IACpD,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,YAAY,EAAE,YAAY,CAAA;IAC1B,KAAK,EAAE,KAAK,CAAA;IACZ,4DAA4D;IAC5D,WAAW,CAAC,EAAE,cAAc,CAAA;IAC5B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAA;CAC7E;AAED,wFAAwF;AACxF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;CACpB;AAsBD,qBAAa,sBAAsB;IAGrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IAEtC,YAA6B,IAAI,EAAE,kCAAkC,EAEpE;IAED,0FAA0F;IACpF,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAExD;IAED,2FAA2F;IACrF,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAU3F;IAED,mFAAmF;YACrE,YAAY;IAK1B,kEAAkE;IAC5D,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAWnF;IAED,yEAAyE;IACnE,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAkBjF;IAED,iEAAiE;IAC3D,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAKxE;IAED,+DAA+D;IACzD,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKnD;IAED,wFAAwF;IAClF,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAM/D;IAED,0FAA0F;YAC5E,KAAK;IAmCnB,qFAAqF;YACvE,iBAAiB;CAIhC"}
|
|
@@ -28,22 +28,29 @@ export class SlackConnectionService {
|
|
|
28
28
|
this.deps = deps;
|
|
29
29
|
this.slack = deps.slackClient ?? new SlackApiClient();
|
|
30
30
|
}
|
|
31
|
-
/** Whether OAuth onboarding is available
|
|
32
|
-
|
|
33
|
-
return Boolean(this.
|
|
31
|
+
/** Whether OAuth onboarding is available for a workspace's account (creds configured). */
|
|
32
|
+
async oauthEnabled(workspaceId) {
|
|
33
|
+
return Boolean(await this.resolveOAuth(workspaceId));
|
|
34
34
|
}
|
|
35
|
-
/** Build the "Add to Slack" authorize URL
|
|
36
|
-
buildInstallUrl(state, scopes) {
|
|
37
|
-
|
|
35
|
+
/** Build the "Add to Slack" authorize URL for a workspace's account, embedding `state`. */
|
|
36
|
+
async buildInstallUrl(workspaceId, state, scopes) {
|
|
37
|
+
const oauth = await this.resolveOAuth(workspaceId);
|
|
38
|
+
if (!oauth)
|
|
38
39
|
throw new ConflictError('Slack OAuth is not configured');
|
|
39
40
|
const params = new URLSearchParams({
|
|
40
|
-
client_id:
|
|
41
|
+
client_id: oauth.clientId,
|
|
41
42
|
scope: scopes.join(','),
|
|
42
|
-
redirect_uri:
|
|
43
|
+
redirect_uri: oauth.redirectUrl,
|
|
43
44
|
state,
|
|
44
45
|
});
|
|
45
46
|
return `https://slack.com/oauth/v2/authorize?${params.toString()}`;
|
|
46
47
|
}
|
|
48
|
+
/** Resolve the OAuth creds for the workspace's account (the install-scope key). */
|
|
49
|
+
async resolveOAuth(workspaceId) {
|
|
50
|
+
if (!this.deps.resolveOAuth)
|
|
51
|
+
return undefined;
|
|
52
|
+
return this.deps.resolveOAuth(await this.resolveAccountKey(workspaceId));
|
|
53
|
+
}
|
|
47
54
|
/** Connect by pasting a bot token (the always-available path). */
|
|
48
55
|
async connectWithToken(workspaceId, token) {
|
|
49
56
|
const accountKey = await this.resolveAccountKey(workspaceId);
|
|
@@ -59,14 +66,15 @@ export class SlackConnectionService {
|
|
|
59
66
|
}
|
|
60
67
|
/** Connect by exchanging an OAuth authorization code for a bot token. */
|
|
61
68
|
async connectViaOAuth(workspaceId, code) {
|
|
62
|
-
|
|
69
|
+
const oauth = await this.resolveOAuth(workspaceId);
|
|
70
|
+
if (!oauth)
|
|
63
71
|
throw new ConflictError('Slack OAuth is not configured');
|
|
64
72
|
const accountKey = await this.resolveAccountKey(workspaceId);
|
|
65
73
|
const result = await this.slack.oauthAccess({
|
|
66
|
-
clientId:
|
|
67
|
-
clientSecret:
|
|
74
|
+
clientId: oauth.clientId,
|
|
75
|
+
clientSecret: oauth.clientSecret,
|
|
68
76
|
code,
|
|
69
|
-
redirectUri:
|
|
77
|
+
redirectUri: oauth.redirectUrl,
|
|
70
78
|
});
|
|
71
79
|
return this.store(accountKey, {
|
|
72
80
|
teamId: result.teamId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlackConnectionService.js","sourceRoot":"","sources":["../../../src/modules/slack/SlackConnectionService.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"SlackConnectionService.js","sourceRoot":"","sources":["../../../src/modules/slack/SlackConnectionService.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAqCpD,SAAS,YAAY,CAAC,MAA6B;IACjD,IAAI,MAAM,GAAa,EAAE,CAAA;IACzB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,MAAM,GAAG,MAAkB,CAAA;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,EAAE,CAAA;QACb,CAAC;IACH,CAAC;IACD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM;QACN,WAAW,EAAE,MAAM,CAAC,SAAS;KAC9B,CAAA;AACH,CAAC;AAED,MAAM,OAAO,sBAAsB;IAGJ,IAAI;IAFhB,KAAK,CAAgB;IAEtC,YAA6B,IAAwC;oBAAxC,IAAI;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,cAAc,EAAE,CAAA;IACvD,CAAC;IAED,0FAA0F;IAC1F,KAAK,CAAC,YAAY,CAAC,WAAmB;QACpC,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAA;IACtD,CAAC;IAED,2FAA2F;IAC3F,KAAK,CAAC,eAAe,CAAC,WAAmB,EAAE,KAAa,EAAE,MAAgB;QACxE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;QAClD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,aAAa,CAAC,+BAA+B,CAAC,CAAA;QACpE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,SAAS,EAAE,KAAK,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YACvB,YAAY,EAAE,KAAK,CAAC,WAAW;YAC/B,KAAK;SACN,CAAC,CAAA;QACF,OAAO,wCAAwC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAA;IACpE,CAAC;IAED,mFAAmF;IAC3E,KAAK,CAAC,YAAY,CAAC,WAAmB;QAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,SAAS,CAAA;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAA;IAC1E,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,gBAAgB,CAAC,WAAmB,EAAE,KAAa;QACvD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAA;QAC5D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK;SACN,CAAC,CAAA;IACJ,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,eAAe,CAAC,WAAmB,EAAE,IAAY;QACrD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;QAClD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,aAAa,CAAC,+BAA+B,CAAC,CAAA;QACpE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAA;QAC5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YAC1C,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,IAAI;YACJ,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,WAAW;SAC1B,CAAC,CAAA;IACJ,CAAC;IAED,iEAAiE;IACjE,KAAK,CAAC,aAAa,CAAC,WAAmB;QACrC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAA;QAC5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;QACjF,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS;YAAE,OAAO,IAAI,CAAA;QAC5C,OAAO,YAAY,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED,+DAA+D;IAC/D,KAAK,CAAC,UAAU,CAAC,WAAmB;QAClC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAA;QAC5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;QACjF,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS;YAAE,OAAM;QACvC,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAA;IACzF,CAAC;IAED,wFAAwF;IACxF,KAAK,CAAC,YAAY,CAAC,WAAmB;QACpC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAA;QAC5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;QACjF,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS;YAAE,OAAO,EAAE,CAAA;QAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QACtE,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC5C,CAAC;IAED,0FAA0F;IAClF,KAAK,CAAC,KAAK,CACjB,UAAkB,EAClB,IAOC;QAED,6EAA6E;QAC7E,2EAA2E;QAC3E,8EAA8E;QAC9E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChF,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YAChD,MAAM,IAAI,aAAa,CAAC,cAAc,IAAI,CAAC,MAAM,0CAA0C,CAAC,CAAA;QAC9F,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;QACnF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpE,MAAM,MAAM,GAA0B;YACpC,SAAS,EAAE,UAAU;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;YACnE,WAAW;YACX,SAAS,EAAE,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YACvF,SAAS,EAAE,IAAI;SAChB,CAAA;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACxD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED,qFAAqF;IAC7E,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACjD,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAA;QAClE,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,WAAW,CAAA;IACpF,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/integrations",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "External-system integration domain logic for the Agent Architecture Board (GitHub, documents, tasks, environments, runners).",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"ai": "^6.0.209",
|
|
28
|
-
"@cat-factory/contracts": "0.
|
|
29
|
-
"@cat-factory/kernel": "0.
|
|
28
|
+
"@cat-factory/contracts": "0.24.0",
|
|
29
|
+
"@cat-factory/kernel": "0.27.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"typescript": "7.0.1-rc",
|