feat(mail): 프로젝트 고객사 도메인 메일 연동(Google Workspace 도메인위임) + 공동 메모
build-and-push / build (push) Successful in 32s
build-and-push / build (push) Successful in 32s
- Project.ClientDomain 필드, MailNote(프로젝트 구성원 공동 메모) 모델
- internal/mailsync: 서비스계정+도메인위임으로 팀 메일함을 도메인 검색·집계(stdlib만, push 패턴 재사용)
· GOOGLE_SA_CREDENTIALS_FILE 미설정 시 비활성(graceful)
- GET /projects/{id}/mails (3분 캐시), GET/PUT /projects/{id}/mail-notes
- fix: handlePatchProject map-key Updates가 camelCase 멀티워드 필드(consultingType·
scopeText·pmEmail·clientDomain·날짜)를 컬럼에 못 맞춰 저장 실패하던 버그 → snakeKeys 변환
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
ce07aced0f
commit
751aa8ed97
@@ -27,6 +27,10 @@ type Config struct {
|
||||
// FCMCredentialsFile is the path to a Firebase service-account JSON used to
|
||||
// send push notifications to spin-mobile. Empty = push disabled (no-op).
|
||||
FCMCredentialsFile string
|
||||
// GoogleSACredentialsFile is the path to a Google Workspace service-account
|
||||
// JSON with DOMAIN-WIDE DELEGATION (gmail.readonly) used to read project
|
||||
// client-domain mail. Empty = mail integration disabled.
|
||||
GoogleSACredentialsFile string
|
||||
// LogoutURL is the common SSO logout path injected by infra (LOGOUT_URL):
|
||||
// ends the oauth2-proxy session then redirects to Keycloak end-session.
|
||||
// The static frontend reads it via /me. Defaults to the infra-common value.
|
||||
@@ -77,7 +81,8 @@ func Load() Config {
|
||||
// Super-admin Keycloak groups (comma-separated). Default: admin
|
||||
// (shared group name across all internal apps, not app-specific).
|
||||
AdminGroups: splitCSV(env("ADMIN_GROUPS", "admin")),
|
||||
FCMCredentialsFile: env("FCM_CREDENTIALS_FILE", ""),
|
||||
FCMCredentialsFile: env("FCM_CREDENTIALS_FILE", ""),
|
||||
GoogleSACredentialsFile: env("GOOGLE_SA_CREDENTIALS_FILE", ""),
|
||||
LogoutURL: env("LOGOUT_URL",
|
||||
"/oauth2/sign_out?rd=https%3A%2F%2Fauth.special-partners.com%2Frealms%2Fsp%2Fprotocol%2Fopenid-connect%2Flogout"),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user