chore: initialize tech log backend
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
# ca-skeleton — Clean Architecture Spring Boot 템플릿
|
||||
# Tech Log Backend
|
||||
|
||||
Initialized from `clean-architecture-backend-template` revision
|
||||
`0a6dd0e419620683de48f69b5c6d22d9964b6f44` as a tracked snapshot. Template
|
||||
updates are applied explicitly and recorded in `template.lock.json`.
|
||||
|
||||
ca-skeleton은 Java 21, Spring Boot 4.0.0, Gradle 멀티모듈 기반의 Clean Architecture 백엔드 템플릿입니다. fork해서 도메인·패키지·엔티티·유스케이스만 교체하면 새 서비스를 시작할 수 있고, 모듈 경계와 의존 방향은 그대로 유지합니다. 기본 패키지는 `dev.caskeleton`이며, 예시 도메인은 production 모듈이 아니라 `sample-portfolio` 모듈(WorkLog 작업 기록 게시판)에 격리합니다.
|
||||
|
||||
|
||||
+2
-2
@@ -32,8 +32,8 @@ services:
|
||||
RELEASE_VERSION: "${RELEASE_VERSION:-0.0.1}"
|
||||
BUILD_VERSION: "${BUILD_VERSION:-0.0.1+0000000}"
|
||||
GIT_SHA: "${GIT_SHA:-0000000}"
|
||||
SOURCE_URL: "${SOURCE_URL:-https://example.invalid/ca-tmpl}"
|
||||
image: caskeleton:${BUILD_VERSION:-0.0.1_local_0000000}
|
||||
SOURCE_URL: "${SOURCE_URL:-https://git.learn.hyeonworks.com/donghyeon.kang/tech-log-backend}"
|
||||
image: tech-log-backend:${BUILD_VERSION:-0.0.1_local_0000000}
|
||||
ports:
|
||||
- "${APP_SERVER_PORT:-8080}:8080"
|
||||
- "9001:9001"
|
||||
|
||||
@@ -632,7 +632,7 @@ env_keys:
|
||||
- name: APP_LOG_FILE_PATH
|
||||
# source: feature-log-management-contract — file path (relative to bootRun cwd or absolute)
|
||||
type: string
|
||||
default: logs/ca-skeleton.json
|
||||
default: logs/tech-log-backend.json
|
||||
allowed_values: null
|
||||
classification: public-config
|
||||
required: false
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
# ----- App identity -----
|
||||
APP_NAME=ca-skeleton
|
||||
APP_NAME=tech-log-backend
|
||||
SPRING_PROFILES_ACTIVE=local
|
||||
|
||||
# ----- Runtime safety (StartupSafetyValidator, D8) -----
|
||||
@@ -51,7 +51,7 @@ APP_LOG_LEVEL_SQL=WARN
|
||||
|
||||
# ----- Logging: file output + rolling -----
|
||||
APP_LOG_FILE_ENABLED=false
|
||||
APP_LOG_FILE_PATH=logs/ca-skeleton.json
|
||||
APP_LOG_FILE_PATH=logs/tech-log-backend.json
|
||||
APP_LOG_FILE_MAX_SIZE=100MB
|
||||
APP_LOG_FILE_MAX_HISTORY=14
|
||||
APP_LOG_FILE_TOTAL_SIZE_CAP=3GB
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@
|
||||
# feature-container-runtime-contract — multi-stage image build
|
||||
#
|
||||
# Build requirements:
|
||||
# docker build -f src/Dockerfile src/ -t caskeleton:local \
|
||||
# docker build -f src/Dockerfile src/ -t tech-log-backend:local \
|
||||
# --build-arg RELEASE_VERSION=1.2.3 \
|
||||
# --build-arg BUILD_VERSION=1.2.3+a1b2c3d4e5f6 \
|
||||
# --build-arg GIT_SHA=a1b2c3d4e5f6 \
|
||||
@@ -64,7 +64,7 @@ ARG GIT_SHA
|
||||
ARG SOURCE_URL
|
||||
|
||||
# OCI image labels (build-arg placeholders — supply at docker build time).
|
||||
LABEL org.opencontainers.image.title="caskeleton" \
|
||||
LABEL org.opencontainers.image.title="tech-log-backend" \
|
||||
org.opencontainers.image.source="${SOURCE_URL}" \
|
||||
org.opencontainers.image.revision="${GIT_SHA}" \
|
||||
org.opencontainers.image.version="${BUILD_VERSION}"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
spring:
|
||||
application:
|
||||
name: ca-skeleton
|
||||
name: tech-log-backend
|
||||
web:
|
||||
error:
|
||||
include-stacktrace: never
|
||||
@@ -125,7 +125,7 @@ ca-skeleton:
|
||||
# rows and timeout guards differ per vendor even though the ports do not.
|
||||
vendor: h2
|
||||
bootstrap:
|
||||
app-name: ca-skeleton
|
||||
app-name: tech-log-backend
|
||||
presentation:
|
||||
# Pinned even though application.yml has an inline default, because the default is /v1 and
|
||||
# src/.env says /api. Everything that names a URL in this repository — SECURITY_PUBLIC_PATHS,
|
||||
@@ -156,7 +156,7 @@ ca-skeleton:
|
||||
# Console only. A local run should not quietly grow a logs/ directory in the working
|
||||
# directory, which differs between a Gradle run and an IDE run.
|
||||
enabled: false
|
||||
path: logs/ca-skeleton.json
|
||||
path: logs/tech-log-backend.json
|
||||
max-size: 100MB
|
||||
max-history: 14
|
||||
total-size-cap: 3GB
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
|
||||
<!-- Early logging initializes before dotenv-backed application.yml placeholders are reliable. -->
|
||||
<springProperty scope="context" name="APP_NAME"
|
||||
source="APP_NAME" defaultValue="ca-skeleton"/>
|
||||
source="APP_NAME" defaultValue="tech-log-backend"/>
|
||||
<springProperty scope="context" name="APP_PROFILE"
|
||||
source="SPRING_PROFILES_ACTIVE" defaultValue="local"/>
|
||||
|
||||
<springProperty scope="context" name="FILE_ENABLED"
|
||||
source="APP_LOG_FILE_ENABLED" defaultValue="false"/>
|
||||
<springProperty scope="context" name="FILE_PATH"
|
||||
source="APP_LOG_FILE_PATH" defaultValue="logs/ca-skeleton.json"/>
|
||||
source="APP_LOG_FILE_PATH" defaultValue="logs/tech-log-backend.json"/>
|
||||
<springProperty scope="context" name="FILE_MAX_SIZE"
|
||||
source="APP_LOG_FILE_MAX_SIZE" defaultValue="100MB"/>
|
||||
<springProperty scope="context" name="FILE_MAX_HISTORY"
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ plugins {
|
||||
id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0'
|
||||
}
|
||||
|
||||
rootProject.name = 'ca-skeleton'
|
||||
rootProject.name = 'tech-log-backend'
|
||||
|
||||
File repositoryRoot = settingsDir.parentFile.canonicalFile
|
||||
File moduleRegistryFile = new File(settingsDir, 'config/architecture/modules.json')
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"template": "clean-architecture-backend-template",
|
||||
"sourceRepository": "https://git.learn.hyeonworks.com/donghyeon.kang/clean-architecture-backend-template",
|
||||
"sourceRevision": "0a6dd0e419620683de48f69b5c6d22d9964b6f44",
|
||||
"sourceTree": "247e3b8f695218e67b3493d2085ddb3aa15d7c82",
|
||||
"materialization": "tracked-snapshot"
|
||||
}
|
||||
Reference in New Issue
Block a user