tachybase_todo/packages/plugins/@tachybase/plugin-api-keys/src/collections/apiKeys.ts
sealday 90a09dfa40 feat: access token (#1320)
Co-authored-by: sealday <sealday@gmail.com>
Reviewed-on: daoyoucloud/tachybase#1320
2024-07-15 18:45:45 +08:00

102 lines
2.1 KiB
TypeScript

import type { CollectionOptions } from '@tachybase/database';
import { generateNTemplate } from '../locale';
export default {
dumpRules: {
group: 'user',
},
shared: true,
name: 'apiKeys',
sortable: 'sort',
createdBy: true,
updatedAt: false,
updatedBy: false,
logging: true,
fields: [
{
name: 'id',
type: 'bigInt',
autoIncrement: true,
primaryKey: true,
allowNull: false,
interface: 'id',
},
{
type: 'string',
name: 'name',
interface: 'input',
uiSchema: {
type: 'string',
title: '{{t("name")}}',
'x-component': 'Input',
},
},
{
interface: 'obo',
type: 'belongsTo',
name: 'role',
target: 'roles',
foreignKey: 'roleName',
uiSchema: {
type: 'object',
title: '{{t("Roles")}}',
'x-component': 'Select',
'x-component-props': {
fieldNames: {
label: 'title',
value: 'name',
},
objectValue: true,
options: '{{ currentRoles }}',
},
},
},
{
name: 'expiresIn',
type: 'string',
uiSchema: {
type: 'string',
title: generateNTemplate('Expires'),
'x-component': 'ExpiresSelect',
enum: [
{
label: generateNTemplate('1 Day'),
value: '1d',
},
{
label: generateNTemplate('7 Days'),
value: '7d',
},
{
label: generateNTemplate('30 Days'),
value: '30d',
},
{
label: generateNTemplate('90 Days'),
value: '90d',
},
{
label: generateNTemplate('Custom'),
value: 'custom',
},
{
label: generateNTemplate('Never'),
value: 'never',
},
],
},
},
{
name: 'token',
type: 'string',
hidden: true,
},
{
name: 'accessToken',
type: 'string',
hidden: true,
},
],
} as CollectionOptions;