Spaces:
Running
Running
/** | |
* Copyright (c) 2023 MERCENARIES.AI PTE. LTD. | |
* All rights reserved. | |
*/ | |
import { DBObject, type IDBObjectLink } from './DBObject'; | |
interface IAPIKeyMetaData { | |
name: string; | |
description: string; | |
revoked: boolean; | |
// @deprecated | |
owner: IDBObjectLink; | |
} | |
class APIKey extends DBObject { | |
static readonly modelName = 'APIKey'; | |
meta: IAPIKeyMetaData; | |
apiNamespace: string; | |
variableName: string; | |
vaultType: string; // Type of vault used to store the key: local, vaultwarden, etc | |
key: string; // ID mapping to the actual key in the keystore | |
owner: string; // _id of the owner | |
constructor(id: string) { | |
super(id); | |
this._id = `${APIKey.modelName}:${this.id}`; | |
this.meta = { | |
name: '', | |
description: '', | |
owner: { | |
id: '', | |
type: '', | |
name: '' | |
}, | |
revoked: false | |
}; | |
this.key = ''; | |
this.vaultType = 'local'; | |
this.owner = ''; | |
this.apiNamespace = ''; | |
this.variableName = ''; | |
} | |
} | |
export { APIKey, type IAPIKeyMetaData }; | |