mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-25 09:31:12 -05:00
Implement blue-green deployment
Implement blue-green deployment strategy for approval flow. This involves deploying the new RPC function alongside the existing edge function, creating a new edge function that calls the RPC, and adding a feature flag to the frontend to toggle between the old and new flows. The plan includes testing in production, gradual rollout, and eventual deprecation of the old edge function.
This commit is contained in:
@@ -14,6 +14,7 @@ import { useAdminSettings } from '@/hooks/useAdminSettings';
|
|||||||
import { NovuMigrationUtility } from '@/components/admin/NovuMigrationUtility';
|
import { NovuMigrationUtility } from '@/components/admin/NovuMigrationUtility';
|
||||||
import { TestDataGenerator } from '@/components/admin/TestDataGenerator';
|
import { TestDataGenerator } from '@/components/admin/TestDataGenerator';
|
||||||
import { IntegrationTestRunner } from '@/components/admin/IntegrationTestRunner';
|
import { IntegrationTestRunner } from '@/components/admin/IntegrationTestRunner';
|
||||||
|
import { ApprovalTransactionToggle } from '@/components/admin/ApprovalTransactionToggle';
|
||||||
import { Loader2, Save, Clock, Users, Bell, Shield, Settings, Trash2, Plug, AlertTriangle, Lock, TestTube, RefreshCw, Info, AlertCircle } from 'lucide-react';
|
import { Loader2, Save, Clock, Users, Bell, Shield, Settings, Trash2, Plug, AlertTriangle, Lock, TestTube, RefreshCw, Info, AlertCircle } from 'lucide-react';
|
||||||
import { useDocumentTitle } from '@/hooks/useDocumentTitle';
|
import { useDocumentTitle } from '@/hooks/useDocumentTitle';
|
||||||
|
|
||||||
@@ -915,29 +916,33 @@ export default function AdminSettings() {
|
|||||||
</TabsContent>
|
</TabsContent>
|
||||||
|
|
||||||
<TabsContent value="system">
|
<TabsContent value="system">
|
||||||
<Card>
|
<div className="space-y-4">
|
||||||
<CardHeader>
|
<Card>
|
||||||
<CardTitle className="flex items-center gap-2">
|
<CardHeader>
|
||||||
<Settings className="w-5 h-5" />
|
<CardTitle className="flex items-center gap-2">
|
||||||
System Configuration
|
<Settings className="w-5 h-5" />
|
||||||
</CardTitle>
|
System Configuration
|
||||||
<CardDescription>
|
</CardTitle>
|
||||||
Configure system-wide settings, maintenance options, and technical parameters
|
<CardDescription>
|
||||||
</CardDescription>
|
Configure system-wide settings, maintenance options, and technical parameters
|
||||||
</CardHeader>
|
</CardDescription>
|
||||||
<CardContent className="space-y-4">
|
</CardHeader>
|
||||||
{getSettingsByCategory('system').filter(s => !s.setting_key.startsWith('retry.') && !s.setting_key.startsWith('circuit_breaker.')).length > 0 ? (
|
<CardContent className="space-y-4">
|
||||||
getSettingsByCategory('system').filter(s => !s.setting_key.startsWith('retry.') && !s.setting_key.startsWith('circuit_breaker.')).map((setting) => (
|
{getSettingsByCategory('system').filter(s => !s.setting_key.startsWith('retry.') && !s.setting_key.startsWith('circuit_breaker.')).length > 0 ? (
|
||||||
<SettingInput key={setting.id} setting={setting} />
|
getSettingsByCategory('system').filter(s => !s.setting_key.startsWith('retry.') && !s.setting_key.startsWith('circuit_breaker.')).map((setting) => (
|
||||||
))
|
<SettingInput key={setting.id} setting={setting} />
|
||||||
) : (
|
))
|
||||||
<div className="text-center py-8 text-muted-foreground">
|
) : (
|
||||||
<Settings className="w-12 h-12 mx-auto mb-4 opacity-50" />
|
<div className="text-center py-8 text-muted-foreground">
|
||||||
<p>No system settings configured yet.</p>
|
<Settings className="w-12 h-12 mx-auto mb-4 opacity-50" />
|
||||||
</div>
|
<p>No system settings configured yet.</p>
|
||||||
)}
|
</div>
|
||||||
</CardContent>
|
)}
|
||||||
</Card>
|
</CardContent>
|
||||||
|
</Card>
|
||||||
|
|
||||||
|
<ApprovalTransactionToggle />
|
||||||
|
</div>
|
||||||
</TabsContent>
|
</TabsContent>
|
||||||
|
|
||||||
<TabsContent value="integrations">
|
<TabsContent value="integrations">
|
||||||
|
|||||||
Reference in New Issue
Block a user