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:
@@ -186,6 +186,48 @@ interface EnvVar {
|
||||
|
||||
<ui-separator />
|
||||
|
||||
<!-- Platform Services -->
|
||||
<div class="space-y-4">
|
||||
<div>
|
||||
<h3 class="text-sm font-medium">Platform Services</h3>
|
||||
<p class="text-xs text-muted-foreground">Enable managed infrastructure for your service</p>
|
||||
</div>
|
||||
|
||||
<div class="space-y-3">
|
||||
<div class="flex items-center gap-3">
|
||||
<ui-checkbox
|
||||
[checked]="form.enableMongoDB ?? false"
|
||||
(checkedChange)="form.enableMongoDB = $event"
|
||||
/>
|
||||
<div>
|
||||
<label uiLabel class="cursor-pointer">MongoDB Database</label>
|
||||
<p class="text-xs text-muted-foreground">A dedicated database will be created and credentials injected as MONGODB_URI</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-center gap-3">
|
||||
<ui-checkbox
|
||||
[checked]="form.enableS3 ?? false"
|
||||
(checkedChange)="form.enableS3 = $event"
|
||||
/>
|
||||
<div>
|
||||
<label uiLabel class="cursor-pointer">S3 Storage (MinIO)</label>
|
||||
<p class="text-xs text-muted-foreground">A dedicated bucket will be created and credentials injected as S3_* and AWS_* env vars</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if (form.enableMongoDB || form.enableS3) {
|
||||
<ui-alert variant="default">
|
||||
<ui-alert-description>
|
||||
Platform services will be auto-deployed if not already running. Credentials are automatically injected as environment variables.
|
||||
</ui-alert-description>
|
||||
</ui-alert>
|
||||
}
|
||||
</div>
|
||||
|
||||
<ui-separator />
|
||||
|
||||
<!-- Onebox Registry -->
|
||||
<div class="space-y-4">
|
||||
<div class="flex items-center gap-3">
|
||||
@@ -257,6 +299,8 @@ export class ServiceCreateComponent implements OnInit {
|
||||
useOneboxRegistry: false,
|
||||
registryImageTag: 'latest',
|
||||
autoUpdateOnPush: false,
|
||||
enableMongoDB: false,
|
||||
enableS3: false,
|
||||
};
|
||||
|
||||
envVars = signal<EnvVar[]>([]);
|
||||
|
||||
Reference in New Issue
Block a user