feat: Implement platform service providers for MinIO and MongoDB
- Added base interface and abstract class for platform service providers. - Created MinIOProvider class for S3-compatible storage with deployment, provisioning, and deprovisioning functionalities. - Implemented MongoDBProvider class for MongoDB service with similar capabilities. - Introduced error handling utilities for better error management. - Developed TokensComponent for managing registry tokens in the UI, including creation, deletion, and display of tokens.
This commit is contained in:
@@ -12,8 +12,14 @@ import {
|
||||
IDnsRecord,
|
||||
IRegistry,
|
||||
IRegistryCreate,
|
||||
IRegistryToken,
|
||||
ICreateTokenRequest,
|
||||
ITokenCreatedResponse,
|
||||
ISetting,
|
||||
ISettings,
|
||||
IPlatformService,
|
||||
IPlatformResource,
|
||||
TPlatformServiceType,
|
||||
} from '../types/api.types';
|
||||
|
||||
@Injectable({ providedIn: 'root' })
|
||||
@@ -75,6 +81,19 @@ export class ApiService {
|
||||
return firstValueFrom(this.http.delete<IApiResponse<void>>(`/api/registries/${id}`));
|
||||
}
|
||||
|
||||
// Registry Tokens
|
||||
async getRegistryTokens(): Promise<IApiResponse<IRegistryToken[]>> {
|
||||
return firstValueFrom(this.http.get<IApiResponse<IRegistryToken[]>>('/api/registry/tokens'));
|
||||
}
|
||||
|
||||
async createRegistryToken(data: ICreateTokenRequest): Promise<IApiResponse<ITokenCreatedResponse>> {
|
||||
return firstValueFrom(this.http.post<IApiResponse<ITokenCreatedResponse>>('/api/registry/tokens', data));
|
||||
}
|
||||
|
||||
async deleteRegistryToken(id: number): Promise<IApiResponse<void>> {
|
||||
return firstValueFrom(this.http.delete<IApiResponse<void>>(`/api/registry/tokens/${id}`));
|
||||
}
|
||||
|
||||
// DNS Records
|
||||
async getDnsRecords(): Promise<IApiResponse<IDnsRecord[]>> {
|
||||
return firstValueFrom(this.http.get<IApiResponse<IDnsRecord[]>>('/api/dns'));
|
||||
@@ -138,4 +157,25 @@ export class ApiService {
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
// Platform Services
|
||||
async getPlatformServices(): Promise<IApiResponse<IPlatformService[]>> {
|
||||
return firstValueFrom(this.http.get<IApiResponse<IPlatformService[]>>('/api/platform-services'));
|
||||
}
|
||||
|
||||
async getPlatformService(type: TPlatformServiceType): Promise<IApiResponse<IPlatformService>> {
|
||||
return firstValueFrom(this.http.get<IApiResponse<IPlatformService>>(`/api/platform-services/${type}`));
|
||||
}
|
||||
|
||||
async startPlatformService(type: TPlatformServiceType): Promise<IApiResponse<void>> {
|
||||
return firstValueFrom(this.http.post<IApiResponse<void>>(`/api/platform-services/${type}/start`, {}));
|
||||
}
|
||||
|
||||
async stopPlatformService(type: TPlatformServiceType): Promise<IApiResponse<void>> {
|
||||
return firstValueFrom(this.http.post<IApiResponse<void>>(`/api/platform-services/${type}/stop`, {}));
|
||||
}
|
||||
|
||||
async getServicePlatformResources(serviceName: string): Promise<IApiResponse<IPlatformResource[]>> {
|
||||
return firstValueFrom(this.http.get<IApiResponse<IPlatformResource[]>>(`/api/services/${serviceName}/platform-resources`));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user