feat: implement naming convention, deployment automation, and infrastructure updates
- Add comprehensive naming convention (provider-region-resource-env-purpose) - Implement Terraform locals for centralized naming - Update all Terraform resources to use new naming convention - Create deployment automation framework (18 phase scripts) - Add Azure setup scripts (provider registration, quota checks) - Update deployment scripts config with naming functions - Create complete deployment documentation (guide, steps, quick reference) - Add frontend portal implementations (public and internal) - Add UI component library (18 components) - Enhance Entra VerifiedID integration with file utilities - Add API client package for all services - Create comprehensive documentation (naming, deployment, next steps) Infrastructure: - Resource groups, storage accounts with new naming - Terraform configuration updates - Outputs with naming convention examples Deployment: - Automated deployment scripts for all 15 phases - State management and logging - Error handling and validation Documentation: - Naming convention guide and implementation summary - Complete deployment guide (296 steps) - Next steps and quick start guides - Azure prerequisites and setup completion docs Note: ESLint warnings present - will be addressed in follow-up commit
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
import { IdentityClient } from './identity';
|
||||
import { EResidencyClient } from './eresidency';
|
||||
import { IntakeClient } from './intake';
|
||||
import { FinanceClient } from './finance';
|
||||
import { DataroomClient } from './dataroom';
|
||||
|
||||
export class ApiClient {
|
||||
public readonly identity: IdentityClient;
|
||||
public readonly eresidency: EResidencyClient;
|
||||
public readonly intake: IntakeClient;
|
||||
public readonly finance: FinanceClient;
|
||||
public readonly dataroom: DataroomClient;
|
||||
|
||||
constructor(baseURL?: string) {
|
||||
// Initialize service clients - each manages its own axios instance
|
||||
this.identity = new IdentityClient();
|
||||
this.eresidency = new EResidencyClient();
|
||||
this.intake = new IntakeClient();
|
||||
this.finance = new FinanceClient();
|
||||
this.dataroom = new DataroomClient();
|
||||
}
|
||||
|
||||
setAuthToken(token: string): void {
|
||||
if (typeof window !== 'undefined') {
|
||||
localStorage.setItem('auth_token', token);
|
||||
}
|
||||
// Update all service clients
|
||||
this.identity.setAuthToken(token);
|
||||
this.eresidency.setAuthToken(token);
|
||||
this.intake.setAuthToken(token);
|
||||
this.finance.setAuthToken(token);
|
||||
this.dataroom.setAuthToken(token);
|
||||
}
|
||||
|
||||
clearAuth(): void {
|
||||
// Clear tokens in all service clients
|
||||
this.identity.clearAuthToken();
|
||||
this.eresidency.clearAuthToken();
|
||||
this.intake.clearAuthToken();
|
||||
this.finance.clearAuthToken();
|
||||
this.dataroom.clearAuthToken();
|
||||
}
|
||||
}
|
||||
|
||||
// Singleton instance
|
||||
let apiClientInstance: ApiClient | null = null;
|
||||
|
||||
export function getApiClient(): ApiClient {
|
||||
if (!apiClientInstance) {
|
||||
apiClientInstance = new ApiClient();
|
||||
}
|
||||
return apiClientInstance;
|
||||
}
|
||||
Reference in New Issue
Block a user