Initial commit: OAuth IAM Laravel application
Laravel-based OAuth/IAM service with Passport, Vue 3 frontend, and Docker Compose setup for local and production deployment. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
90
resources/js/types/models.ts
Normal file
90
resources/js/types/models.ts
Normal file
@@ -0,0 +1,90 @@
|
||||
export interface User {
|
||||
id: number;
|
||||
name: string;
|
||||
email: string;
|
||||
is_active: boolean;
|
||||
roles: string[];
|
||||
permissions?: string[];
|
||||
created_at: string;
|
||||
deleted_at?: string | null;
|
||||
approved_at?: string | null;
|
||||
}
|
||||
|
||||
export interface OAuthClient {
|
||||
id: string;
|
||||
owner_id: number;
|
||||
owner_type: string;
|
||||
name: string;
|
||||
secret: string | null;
|
||||
provider: string | null;
|
||||
redirect_uris: string[];
|
||||
grant_types: string[];
|
||||
revoked: boolean;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
}
|
||||
|
||||
export interface PersonalAccessToken {
|
||||
id: string;
|
||||
name: string;
|
||||
scopes: string[];
|
||||
created_at: string;
|
||||
expires_at: string | null;
|
||||
}
|
||||
|
||||
export interface AuthorizedAppToken {
|
||||
id: string;
|
||||
user_id: number;
|
||||
client_id: string;
|
||||
name: string | null;
|
||||
scopes: string[];
|
||||
revoked: boolean;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
expires_at: string | null;
|
||||
client: { id: string; name: string };
|
||||
}
|
||||
|
||||
export interface Scope {
|
||||
id: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export interface OAuthApp {
|
||||
id: string;
|
||||
name: string;
|
||||
}
|
||||
|
||||
export interface AppRoleGroup {
|
||||
client_id: string;
|
||||
client_name: string;
|
||||
roles: string[];
|
||||
}
|
||||
|
||||
export interface AnalyticsSummary {
|
||||
kpis: {
|
||||
total_users: number;
|
||||
active_sessions: number;
|
||||
logins_today: number;
|
||||
logins_7d: number;
|
||||
};
|
||||
logins_by_day: Array<{ date: string; session: number; oauth: number }>;
|
||||
logins_by_app: Array<{ client_name: string; count: number }>;
|
||||
top_users: Array<{ name: string; email: string; count: number }>;
|
||||
recent: Array<{
|
||||
user_name: string | null;
|
||||
user_email: string | null;
|
||||
client_name: string;
|
||||
type: 'session' | 'oauth';
|
||||
ip_address: string | null;
|
||||
created_at: string;
|
||||
}>;
|
||||
}
|
||||
|
||||
export interface OAuthAuthorizePayload {
|
||||
authToken: string;
|
||||
csrfToken: string;
|
||||
client: { id: string; name: string };
|
||||
scopes: Scope[];
|
||||
user: { name: string; email: string };
|
||||
}
|
||||
Reference in New Issue
Block a user