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 작업 기록 게시판)에 격리합니다.
|
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}"
|
RELEASE_VERSION: "${RELEASE_VERSION:-0.0.1}"
|
||||||
BUILD_VERSION: "${BUILD_VERSION:-0.0.1+0000000}"
|
BUILD_VERSION: "${BUILD_VERSION:-0.0.1+0000000}"
|
||||||
GIT_SHA: "${GIT_SHA:-0000000}"
|
GIT_SHA: "${GIT_SHA:-0000000}"
|
||||||
SOURCE_URL: "${SOURCE_URL:-https://example.invalid/ca-tmpl}"
|
SOURCE_URL: "${SOURCE_URL:-https://git.learn.hyeonworks.com/donghyeon.kang/tech-log-backend}"
|
||||||
image: caskeleton:${BUILD_VERSION:-0.0.1_local_0000000}
|
image: tech-log-backend:${BUILD_VERSION:-0.0.1_local_0000000}
|
||||||
ports:
|
ports:
|
||||||
- "${APP_SERVER_PORT:-8080}:8080"
|
- "${APP_SERVER_PORT:-8080}:8080"
|
||||||
- "9001:9001"
|
- "9001:9001"
|
||||||
|
|||||||
@@ -632,7 +632,7 @@ env_keys:
|
|||||||
- name: APP_LOG_FILE_PATH
|
- name: APP_LOG_FILE_PATH
|
||||||
# source: feature-log-management-contract — file path (relative to bootRun cwd or absolute)
|
# source: feature-log-management-contract — file path (relative to bootRun cwd or absolute)
|
||||||
type: string
|
type: string
|
||||||
default: logs/ca-skeleton.json
|
default: logs/tech-log-backend.json
|
||||||
allowed_values: null
|
allowed_values: null
|
||||||
classification: public-config
|
classification: public-config
|
||||||
required: false
|
required: false
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
# ----- App identity -----
|
# ----- App identity -----
|
||||||
APP_NAME=ca-skeleton
|
APP_NAME=tech-log-backend
|
||||||
SPRING_PROFILES_ACTIVE=local
|
SPRING_PROFILES_ACTIVE=local
|
||||||
|
|
||||||
# ----- Runtime safety (StartupSafetyValidator, D8) -----
|
# ----- Runtime safety (StartupSafetyValidator, D8) -----
|
||||||
@@ -51,7 +51,7 @@ APP_LOG_LEVEL_SQL=WARN
|
|||||||
|
|
||||||
# ----- Logging: file output + rolling -----
|
# ----- Logging: file output + rolling -----
|
||||||
APP_LOG_FILE_ENABLED=false
|
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_SIZE=100MB
|
||||||
APP_LOG_FILE_MAX_HISTORY=14
|
APP_LOG_FILE_MAX_HISTORY=14
|
||||||
APP_LOG_FILE_TOTAL_SIZE_CAP=3GB
|
APP_LOG_FILE_TOTAL_SIZE_CAP=3GB
|
||||||
|
|||||||
+2
-2
@@ -3,7 +3,7 @@
|
|||||||
# feature-container-runtime-contract — multi-stage image build
|
# feature-container-runtime-contract — multi-stage image build
|
||||||
#
|
#
|
||||||
# Build requirements:
|
# 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 RELEASE_VERSION=1.2.3 \
|
||||||
# --build-arg BUILD_VERSION=1.2.3+a1b2c3d4e5f6 \
|
# --build-arg BUILD_VERSION=1.2.3+a1b2c3d4e5f6 \
|
||||||
# --build-arg GIT_SHA=a1b2c3d4e5f6 \
|
# --build-arg GIT_SHA=a1b2c3d4e5f6 \
|
||||||
@@ -64,7 +64,7 @@ ARG GIT_SHA
|
|||||||
ARG SOURCE_URL
|
ARG SOURCE_URL
|
||||||
|
|
||||||
# OCI image labels (build-arg placeholders — supply at docker build time).
|
# 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.source="${SOURCE_URL}" \
|
||||||
org.opencontainers.image.revision="${GIT_SHA}" \
|
org.opencontainers.image.revision="${GIT_SHA}" \
|
||||||
org.opencontainers.image.version="${BUILD_VERSION}"
|
org.opencontainers.image.version="${BUILD_VERSION}"
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
spring:
|
spring:
|
||||||
application:
|
application:
|
||||||
name: ca-skeleton
|
name: tech-log-backend
|
||||||
web:
|
web:
|
||||||
error:
|
error:
|
||||||
include-stacktrace: never
|
include-stacktrace: never
|
||||||
@@ -125,7 +125,7 @@ ca-skeleton:
|
|||||||
# rows and timeout guards differ per vendor even though the ports do not.
|
# rows and timeout guards differ per vendor even though the ports do not.
|
||||||
vendor: h2
|
vendor: h2
|
||||||
bootstrap:
|
bootstrap:
|
||||||
app-name: ca-skeleton
|
app-name: tech-log-backend
|
||||||
presentation:
|
presentation:
|
||||||
# Pinned even though application.yml has an inline default, because the default is /v1 and
|
# 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,
|
# 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
|
# 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.
|
# directory, which differs between a Gradle run and an IDE run.
|
||||||
enabled: false
|
enabled: false
|
||||||
path: logs/ca-skeleton.json
|
path: logs/tech-log-backend.json
|
||||||
max-size: 100MB
|
max-size: 100MB
|
||||||
max-history: 14
|
max-history: 14
|
||||||
total-size-cap: 3GB
|
total-size-cap: 3GB
|
||||||
|
|||||||
@@ -4,14 +4,14 @@
|
|||||||
|
|
||||||
<!-- Early logging initializes before dotenv-backed application.yml placeholders are reliable. -->
|
<!-- Early logging initializes before dotenv-backed application.yml placeholders are reliable. -->
|
||||||
<springProperty scope="context" name="APP_NAME"
|
<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"
|
<springProperty scope="context" name="APP_PROFILE"
|
||||||
source="SPRING_PROFILES_ACTIVE" defaultValue="local"/>
|
source="SPRING_PROFILES_ACTIVE" defaultValue="local"/>
|
||||||
|
|
||||||
<springProperty scope="context" name="FILE_ENABLED"
|
<springProperty scope="context" name="FILE_ENABLED"
|
||||||
source="APP_LOG_FILE_ENABLED" defaultValue="false"/>
|
source="APP_LOG_FILE_ENABLED" defaultValue="false"/>
|
||||||
<springProperty scope="context" name="FILE_PATH"
|
<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"
|
<springProperty scope="context" name="FILE_MAX_SIZE"
|
||||||
source="APP_LOG_FILE_MAX_SIZE" defaultValue="100MB"/>
|
source="APP_LOG_FILE_MAX_SIZE" defaultValue="100MB"/>
|
||||||
<springProperty scope="context" name="FILE_MAX_HISTORY"
|
<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'
|
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 repositoryRoot = settingsDir.parentFile.canonicalFile
|
||||||
File moduleRegistryFile = new File(settingsDir, 'config/architecture/modules.json')
|
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