feat(opsserver,web): replace the Angular UI and REST management layer with a TypedRequest-based ops server and bundled web frontend
This commit is contained in:
48
ts_interfaces/data/organization.ts
Normal file
48
ts_interfaces/data/organization.ts
Normal file
@@ -0,0 +1,48 @@
|
||||
// ============================================================================
|
||||
// Organization Data Types
|
||||
// ============================================================================
|
||||
|
||||
export type TOrganizationPlan = 'free' | 'team' | 'enterprise';
|
||||
export type TOrganizationRole = 'owner' | 'admin' | 'member';
|
||||
|
||||
export interface IOrganization {
|
||||
id: string;
|
||||
name: string;
|
||||
displayName: string;
|
||||
description?: string;
|
||||
avatarUrl?: string;
|
||||
website?: string;
|
||||
isPublic: boolean;
|
||||
memberCount: number;
|
||||
plan: TOrganizationPlan;
|
||||
usedStorageBytes: number;
|
||||
storageQuotaBytes: number;
|
||||
createdAt: string;
|
||||
}
|
||||
|
||||
export interface IOrganizationDetail extends IOrganization {
|
||||
settings?: IOrganizationSettings;
|
||||
}
|
||||
|
||||
export interface IOrganizationSettings {
|
||||
requireMfa: boolean;
|
||||
allowPublicRepositories: boolean;
|
||||
defaultRepositoryVisibility: TRepositoryVisibility;
|
||||
allowedProtocols: TRegistryProtocol[];
|
||||
}
|
||||
|
||||
export interface IOrganizationMember {
|
||||
userId: string;
|
||||
role: TOrganizationRole;
|
||||
addedAt: string;
|
||||
user: {
|
||||
username: string;
|
||||
displayName: string;
|
||||
avatarUrl?: string;
|
||||
} | null;
|
||||
}
|
||||
|
||||
// Re-export types used by settings
|
||||
import type { TRepositoryVisibility } from './repository.ts';
|
||||
import type { TRegistryProtocol } from './package.ts';
|
||||
export type { TRegistryProtocol, TRepositoryVisibility };
|
||||
Reference in New Issue
Block a user