mirror of
https://github.com/samanhappy/mcphub.git
synced 2025-12-31 20:00:00 -05:00
61 lines
1.4 KiB
TypeScript
61 lines
1.4 KiB
TypeScript
import {
|
|
Entity,
|
|
Column,
|
|
PrimaryGeneratedColumn,
|
|
CreateDateColumn,
|
|
UpdateDateColumn,
|
|
} from 'typeorm';
|
|
|
|
/**
|
|
* OAuth Client entity for database storage
|
|
* Represents OAuth clients registered with MCPHub's authorization server
|
|
*/
|
|
@Entity({ name: 'oauth_clients' })
|
|
export class OAuthClient {
|
|
@PrimaryGeneratedColumn('uuid')
|
|
id: string;
|
|
|
|
@Column({ name: 'client_id', type: 'varchar', length: 255, unique: true })
|
|
clientId: string;
|
|
|
|
@Column({ name: 'client_secret', type: 'varchar', length: 255, nullable: true })
|
|
clientSecret?: string;
|
|
|
|
@Column({ type: 'varchar', length: 255 })
|
|
name: string;
|
|
|
|
@Column({ name: 'redirect_uris', type: 'simple-json' })
|
|
redirectUris: string[];
|
|
|
|
@Column({ type: 'simple-json' })
|
|
grants: string[];
|
|
|
|
@Column({ type: 'simple-json', nullable: true })
|
|
scopes?: string[];
|
|
|
|
@Column({ type: 'varchar', length: 255, nullable: true })
|
|
owner?: string;
|
|
|
|
@Column({ type: 'simple-json', nullable: true })
|
|
metadata?: {
|
|
application_type?: 'web' | 'native';
|
|
response_types?: string[];
|
|
token_endpoint_auth_method?: string;
|
|
contacts?: string[];
|
|
logo_uri?: string;
|
|
client_uri?: string;
|
|
policy_uri?: string;
|
|
tos_uri?: string;
|
|
jwks_uri?: string;
|
|
jwks?: object;
|
|
};
|
|
|
|
@CreateDateColumn({ name: 'created_at', type: 'timestamp' })
|
|
createdAt: Date;
|
|
|
|
@UpdateDateColumn({ name: 'updated_at', type: 'timestamp' })
|
|
updatedAt: Date;
|
|
}
|
|
|
|
export default OAuthClient;
|