module federation

This commit is contained in:
2025-08-26 20:32:13 -04:00
parent a7d5425124
commit 2772dcc966
46 changed files with 52051 additions and 103 deletions

2
web/@mf-types/kms/App.d.ts vendored Normal file
View File

@ -0,0 +1,2 @@
export * from './compiled-types/federated/KMSApp';
export { default } from './compiled-types/federated/KMSApp';

2
web/@mf-types/kms/SearchProvider.d.ts vendored Normal file
View File

@ -0,0 +1,2 @@
export * from './compiled-types/federated/SearchProvider';
export { default } from './compiled-types/federated/SearchProvider';

3
web/@mf-types/kms/apis.d.ts vendored Normal file
View File

@ -0,0 +1,3 @@
export type RemoteKeys = 'kms/App' | 'kms/SearchProvider';
type PackageType<T> = T extends 'kms/SearchProvider' ? typeof import('kms/SearchProvider') :T extends 'kms/App' ? typeof import('kms/App') :any;

View File

@ -0,0 +1,3 @@
import React from 'react';
declare const Applications: React.FC;
export default Applications;

View File

@ -0,0 +1,3 @@
import React from 'react';
declare const Audit: React.FC;
export default Audit;

View File

@ -0,0 +1,3 @@
import React from 'react';
declare const Dashboard: React.FC;
export default Dashboard;

View File

@ -0,0 +1,3 @@
import React from 'react';
declare const Login: React.FC;
export default Login;

View File

@ -0,0 +1,3 @@
import React from 'react';
declare const TokenTester: React.FC;
export default TokenTester;

View File

@ -0,0 +1,3 @@
import React from 'react';
declare const TokenTesterCallback: React.FC;
export default TokenTesterCallback;

View File

@ -0,0 +1,3 @@
import React from 'react';
declare const Tokens: React.FC;
export default Tokens;

View File

@ -0,0 +1,3 @@
import React from 'react';
declare const Users: React.FC;
export default Users;

View File

@ -0,0 +1,17 @@
import React, { ReactNode } from 'react';
interface User {
email: string;
permissions: string[];
}
interface AuthContextType {
user: User | null;
login: (email: string) => Promise<boolean>;
logout: () => void;
loading: boolean;
}
export declare const useAuth: () => AuthContextType;
interface AuthProviderProps {
children: ReactNode;
}
export declare const AuthProvider: React.FC<AuthProviderProps>;
export {};

View File

@ -0,0 +1,3 @@
import React from 'react';
declare const KMSApp: React.FC;
export default KMSApp;

View File

@ -0,0 +1,9 @@
interface SearchResult {
id: string;
title: string;
description?: string;
appId: string;
action?: () => void;
}
export declare const kmsSearchProvider: (query: string) => Promise<SearchResult[]>;
export default kmsSearchProvider;

View File

@ -0,0 +1,152 @@
export interface Application {
app_id: string;
app_link: string;
type: string[];
callback_url: string;
hmac_key: string;
token_prefix?: string;
token_renewal_duration: number;
max_token_duration: number;
owner: {
type: string;
name: string;
owner: string;
};
created_at: string;
updated_at: string;
}
export interface StaticToken {
id: string;
app_id: string;
owner: {
type: string;
name: string;
owner: string;
};
type: string;
created_at: string;
updated_at: string;
}
export interface CreateApplicationRequest {
app_id: string;
app_link: string;
type: string[];
callback_url: string;
token_prefix?: string;
token_renewal_duration: string;
max_token_duration: string;
owner: {
type: string;
name: string;
owner: string;
};
}
export interface CreateTokenRequest {
owner: {
type: string;
name: string;
owner: string;
};
permissions: string[];
}
export interface CreateTokenResponse {
id: string;
token: string;
permissions: string[];
created_at: string;
}
export interface PaginatedResponse<T> {
data: T[];
limit: number;
offset: number;
count: number;
}
export interface VerifyRequest {
app_id: string;
user_id?: string;
token: string;
permissions?: string[];
}
export interface VerifyResponse {
valid: boolean;
permitted: boolean;
user_id?: string;
permissions: string[];
permission_results?: Record<string, boolean>;
expires_at?: string;
max_valid_at?: string;
token_type: string;
claims?: Record<string, string>;
error?: string;
}
export interface AuditEvent {
id: string;
type: string;
status: string;
timestamp: string;
actor_id?: string;
actor_ip?: string;
user_agent?: string;
resource_id?: string;
resource_type?: string;
action: string;
description: string;
details?: Record<string, any>;
request_id?: string;
session_id?: string;
}
export interface AuditQueryParams {
event_types?: string[];
statuses?: string[];
actor_id?: string;
resource_id?: string;
resource_type?: string;
start_time?: string;
end_time?: string;
limit?: number;
offset?: number;
order_by?: string;
order_desc?: boolean;
}
export interface AuditResponse {
events: AuditEvent[];
total: number;
limit: number;
offset: number;
}
export interface AuditStats {
total_events: number;
by_type: Record<string, number>;
by_severity: Record<string, number>;
by_status: Record<string, number>;
by_time?: Record<string, number>;
}
export interface AuditStatsParams {
event_types?: string[];
start_time?: string;
end_time?: string;
group_by?: string;
}
declare class ApiService {
private api;
private baseURL;
constructor();
healthCheck(): Promise<any>;
readinessCheck(): Promise<any>;
getApplications(limit?: number, offset?: number): Promise<PaginatedResponse<Application>>;
getApplication(appId: string): Promise<Application>;
createApplication(data: CreateApplicationRequest): Promise<Application>;
updateApplication(appId: string, data: Partial<CreateApplicationRequest>): Promise<Application>;
deleteApplication(appId: string): Promise<void>;
getTokensForApplication(appId: string, limit?: number, offset?: number): Promise<PaginatedResponse<StaticToken>>;
createToken(appId: string, data: CreateTokenRequest): Promise<CreateTokenResponse>;
deleteToken(tokenId: string): Promise<void>;
verifyToken(data: VerifyRequest): Promise<VerifyResponse>;
login(appId: string, permissions: string[], redirectUri?: string, tokenDelivery?: string): Promise<any>;
renewToken(appId: string, userId: string, token: string): Promise<any>;
getAuditEvents(params?: AuditQueryParams): Promise<AuditResponse>;
getAuditEvent(eventId: string): Promise<AuditEvent>;
getAuditStats(params?: AuditStatsParams): Promise<AuditStats>;
}
export declare const apiService: ApiService;
export {};