mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
add machineIdentityAccessToken model
This commit is contained in:
70
backend/src/models/machineIdentityAccessToken.ts
Normal file
70
backend/src/models/machineIdentityAccessToken.ts
Normal file
@@ -0,0 +1,70 @@
|
||||
import { Document, Schema, Types, model } from "mongoose";
|
||||
import { boolean } from "zod";
|
||||
|
||||
export interface IMachineIdentityAccessToken extends Document {
|
||||
_id: Types.ObjectId;
|
||||
machineIdentityClientSecret: Types.ObjectId;
|
||||
isActive: boolean;
|
||||
accessTokenLastUsed?: Date;
|
||||
accessTokenNumUses: number;
|
||||
accessTokenNumUsesLimit: number;
|
||||
accessTokenTTL: number;
|
||||
accessTokenVersion: number;
|
||||
renewable: boolean;
|
||||
updatedAt: Date;
|
||||
createdAt: Date;
|
||||
}
|
||||
|
||||
const machineIdentityAccessTokenSchema = new Schema(
|
||||
{
|
||||
machineIdentityClientSecret: {
|
||||
type: Schema.Types.ObjectId,
|
||||
ref: "MachineIdentityClientSecret",
|
||||
required: true
|
||||
},
|
||||
isActive: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
required: true
|
||||
},
|
||||
accessTokenLastUsed: {
|
||||
type: Date,
|
||||
required: false
|
||||
},
|
||||
accessTokenNumUses: {
|
||||
// number of times access token has been used
|
||||
type: Number,
|
||||
default: 0,
|
||||
required: true
|
||||
},
|
||||
accessTokenNumUsesLimit: {
|
||||
// number of times access token can be used for
|
||||
type: Number,
|
||||
default: 0, // default: used as many times as needed
|
||||
required: true
|
||||
},
|
||||
accessTokenTTL: {
|
||||
type: Number,
|
||||
default: 0, // default: does not expire
|
||||
required: true
|
||||
},
|
||||
renewable: {
|
||||
type: boolean,
|
||||
default: false, // no refresh mechanism yet
|
||||
},
|
||||
accessTokenVersion: {
|
||||
type: Number,
|
||||
default: 1,
|
||||
required: true
|
||||
},
|
||||
},
|
||||
{
|
||||
timestamps: true
|
||||
}
|
||||
);
|
||||
|
||||
machineIdentityAccessTokenSchema.index(
|
||||
{ machineIdentityClientSecret: 1, isActive: 1 }
|
||||
)
|
||||
|
||||
export const MachineIdentityClientSecret = model<IMachineIdentityAccessToken>("MachineIdentityAccessToken", machineIdentityAccessTokenSchema);
|
||||
Reference in New Issue
Block a user