Implemented a complete Angular 20 migration with modern standalone components architecture and production-ready Docker deployment: **Frontend Migration:** - Created Angular 20 application with standalone components (no NgModules) - Implemented three main components: artifacts-list, upload-form, query-form - Added TypeScript models and services for type-safe API communication - Migrated dark theme UI with all existing features - Configured routing and navigation between views - Set up development proxy for seamless API integration - Reactive forms with validation for upload and query functionality - Auto-refresh artifacts every 5 seconds with RxJS observables - Client-side sorting, filtering, and search capabilities - Tags displayed as inline badges, SIM source grouping support **Docker Integration:** - Multi-stage Dockerfile for Angular (Node 24 build, nginx Alpine serve) - nginx configuration for SPA routing and API proxy - Updated docker-compose.yml with frontend service on port 80 - Health checks for all services - Production-optimized build with gzip compression and asset caching **Technical Stack:** - Angular 20 with standalone components - TypeScript for type safety - RxJS for reactive programming - nginx as reverse proxy - Multi-stage Docker builds for optimal image size All features fully functional and tested in Docker environment. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
41 lines
854 B
TypeScript
41 lines
854 B
TypeScript
export interface Artifact {
|
|
id: number;
|
|
filename: string;
|
|
file_type: string;
|
|
file_size: number;
|
|
storage_path: string;
|
|
content_type: string | null;
|
|
test_name: string | null;
|
|
test_suite: string | null;
|
|
test_config: any;
|
|
test_result: string | null;
|
|
sim_source_id: string | null;
|
|
custom_metadata: any;
|
|
description: string | null;
|
|
tags: string[] | null;
|
|
created_at: string;
|
|
updated_at: string;
|
|
version: string | null;
|
|
parent_id: number | null;
|
|
}
|
|
|
|
export interface ArtifactQuery {
|
|
filename?: string;
|
|
file_type?: string;
|
|
test_name?: string;
|
|
test_suite?: string;
|
|
test_result?: string;
|
|
sim_source_id?: string;
|
|
tags?: string[];
|
|
start_date?: string;
|
|
end_date?: string;
|
|
limit?: number;
|
|
offset?: number;
|
|
}
|
|
|
|
export interface ApiInfo {
|
|
deployment_mode: string;
|
|
storage_backend: string;
|
|
version: string;
|
|
}
|