mirror of
https://github.com/eigent-ai/eigent.git
synced 2026-04-29 04:00:09 +00:00
62 lines
No EOL
2 KiB
JavaScript
62 lines
No EOL
2 KiB
JavaScript
// src/interface/crud/sessions.ts
|
|
import { createCrud } from "../../crud";
|
|
import { yupBoolean, yupMixed, yupNumber, yupObject, yupString } from "../../schema-fields";
|
|
import { geoInfoSchema } from "../../utils/geo";
|
|
var sessionsCrudServerCreateSchema = yupObject({
|
|
user_id: yupString().uuid().defined(),
|
|
expires_in_millis: yupNumber().max(1e3 * 60 * 60 * 24 * 367).default(1e3 * 60 * 60 * 24 * 365),
|
|
is_impersonation: yupBoolean().default(false)
|
|
}).defined();
|
|
var sessionsCreateOutputSchema = yupObject({
|
|
refresh_token: yupString().defined(),
|
|
access_token: yupString().defined()
|
|
}).defined();
|
|
var sessionsCrudReadSchema = yupObject({
|
|
id: yupString().defined(),
|
|
user_id: yupString().uuid().defined(),
|
|
created_at: yupNumber().defined(),
|
|
is_impersonation: yupBoolean().defined(),
|
|
last_used_at: yupNumber().optional(),
|
|
is_current_session: yupBoolean(),
|
|
// TODO move this to a shared type
|
|
// TODO: what about if not trusted?
|
|
last_used_at_end_user_ip_info: geoInfoSchema.optional()
|
|
}).defined();
|
|
var sessionsCrudDeleteSchema = yupMixed();
|
|
var sessionsCrud = createCrud({
|
|
// serverCreateSchema: sessionsCrudServerCreateSchema,
|
|
serverReadSchema: sessionsCrudReadSchema,
|
|
serverDeleteSchema: sessionsCrudDeleteSchema,
|
|
clientReadSchema: sessionsCrudReadSchema,
|
|
clientDeleteSchema: sessionsCrudDeleteSchema,
|
|
docs: {
|
|
serverList: {
|
|
summary: "List sessions",
|
|
description: "List all sessions for the current user.",
|
|
tags: ["Sessions"]
|
|
},
|
|
serverDelete: {
|
|
summary: "Delete session",
|
|
description: "Delete a session by ID.",
|
|
tags: ["Sessions"]
|
|
},
|
|
clientList: {
|
|
summary: "List sessions",
|
|
description: "List all sessions for the current user.",
|
|
tags: ["Sessions"]
|
|
},
|
|
clientDelete: {
|
|
summary: "Delete session",
|
|
description: "Delete a session by ID.",
|
|
tags: ["Sessions"]
|
|
}
|
|
}
|
|
});
|
|
export {
|
|
sessionsCreateOutputSchema,
|
|
sessionsCrud,
|
|
sessionsCrudDeleteSchema,
|
|
sessionsCrudReadSchema,
|
|
sessionsCrudServerCreateSchema
|
|
};
|
|
//# sourceMappingURL=sessions.js.map
|