You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
autoflow-server-mgmt/CLAUDE.md

51 lines
2.3 KiB

# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## 1. Common Development Tasks
### Build and Run
- **Run the application (Spring Boot dev mode):** `./gradlew bootRun`
- **Build JAR:** `./gradlew build`
- **Run JAR:** `java -jar build/libs/autoflow-server-mgmt-0.0.1-SNAPSHOT.jar`
### Testing
- **Run all tests:** `./gradlew test`
## 2. High-Level Code Architecture and Structure
This project is the core management server for the AutoFlow system, built with Spring Boot. It manages machine learning pipelines, datasets, and integrates with external systems like Kubeflow, MLflow, and OTA.
### Key Features:
- **Authentication & Security:** JWT-based authentication with refresh tokens, cookie-based token storage, and fine-grained access control.
- **Project & Data Management:** Hierarchical management of projects, data groups, and datasets.
- **ML Pipeline & Workflow:** Integration with Kubeflow for experiment/run management and pipeline uploads; MLflow for experiment tracking.
- **File Management:** AWS S3 integration for large file storage and multipart uploads.
- **External Integrations:** OTA for external authentication/package search, Spring Batch for large data processing.
### Project Structure (`kr.re.etri.autoflow` package):
- `controllers`: API endpoints for authentication, projects, data, etc.
- `service`: Business logic implementation.
- `repository`: Data access layer using JPA.
- `entity`: Database entities.
- `security`: Spring Security and JWT handling.
- `batch`: Spring Batch job configurations.
- `payload`: Request/Response Data Transfer Objects (DTOs).
- `models`: Domain models.
- `exception`: Global exception handling.
- `common`: Common utilities and configurations.
### Technologies:
- **Language:** Java 17
- **Framework:** Spring Boot 3.5.6
- **Build Tool:** Gradle
- **Database:** MariaDB (JPA / Hibernate)
- **Security:** Spring Security, JWT
- **Storage:** AWS S3
- **Batch Processing:** Spring Batch
- **API Documentation:** Springdoc OpenAPI (Swagger UI)
### Configuration:
- The `src/main/resources/application.properties` file contains critical settings for the database, JWT secret, AWS S3, Kubeflow, and MLflow URLs. These must be configured for the application to run correctly.