mirror of
https://github.com/kennethnym/aris.git
synced 2026-04-06 10:01:23 +01:00
Add credentials parameter to FeedSourceProvider.feedSourceForUser so providers can receive decrypted per-user credentials (OAuth tokens, passwords) from the user_sources table. Wire CredentialEncryptor into UserSessionManager to handle encrypt/decrypt. Providers receive plaintext and handle validation internally. Existing providers ignore the new parameter. Co-authored-by: Ona <no-reply@ona.com>
50 lines
1.2 KiB
TypeScript
50 lines
1.2 KiB
TypeScript
/**
|
|
* Thrown when an operation targets a user source that doesn't exist.
|
|
*/
|
|
export class SourceNotFoundError extends Error {
|
|
readonly sourceId: string
|
|
readonly userId: string
|
|
|
|
constructor(sourceId: string, userId: string) {
|
|
super(`Source "${sourceId}" not found for user "${userId}"`)
|
|
this.name = "SourceNotFoundError"
|
|
this.sourceId = sourceId
|
|
this.userId = userId
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Thrown when a source config update fails schema validation.
|
|
*/
|
|
export class InvalidSourceConfigError extends Error {
|
|
readonly sourceId: string
|
|
|
|
constructor(sourceId: string, summary: string) {
|
|
super(summary)
|
|
this.sourceId = sourceId
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Thrown by providers when credentials fail validation.
|
|
*/
|
|
export class InvalidSourceCredentialsError extends Error {
|
|
readonly sourceId: string
|
|
|
|
constructor(sourceId: string, summary: string) {
|
|
super(summary)
|
|
this.name = "InvalidSourceCredentialsError"
|
|
this.sourceId = sourceId
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Thrown when credential storage is not configured (missing encryption key).
|
|
*/
|
|
export class CredentialStorageUnavailableError extends Error {
|
|
constructor() {
|
|
super("Credential storage is not configured")
|
|
this.name = "CredentialStorageUnavailableError"
|
|
}
|
|
}
|