create-entity-server 0.0.25 → 0.0.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/package.json +1 -1
  2. package/template/.env.example +38 -0
  3. package/template/configs/auth/cors.json +15 -0
  4. package/template/configs/auth/identity.json +27 -0
  5. package/template/configs/auth/jwt.json +12 -0
  6. package/template/configs/{oauth.json → auth/oauth.json} +7 -4
  7. package/template/configs/auth/password.json +33 -0
  8. package/template/configs/auth/privacy_policy.json +28 -0
  9. package/template/configs/{security.json → auth/security.json} +4 -2
  10. package/template/configs/auth/two_factor.json +12 -0
  11. package/template/configs/database.json +0 -159
  12. package/template/configs/database.json.example +186 -0
  13. package/template/configs/extensions/backup.json +46 -0
  14. package/template/configs/extensions/pg.json +37 -0
  15. package/template/configs/extensions/storage.json +148 -0
  16. package/template/configs/extensions/tax-invoice.json +59 -0
  17. package/template/configs/keys/.gitkeep +0 -0
  18. package/template/configs/keys/apns.p8.example +7 -0
  19. package/template/configs/keys/firebase.pem.example +7 -0
  20. package/template/configs/notification/alimtalk.json +75 -0
  21. package/template/configs/{push.json → notification/push.json} +1 -2
  22. package/template/configs/notification/sms.json +54 -0
  23. package/template/configs/notification/smtp.json +43 -0
  24. package/template/configs/server.json +2 -0
  25. package/template/entities/README.md +20 -23
  26. package/template/entities/System/Auth/account.json +17 -1
  27. package/template/entities/System/Auth/account_audit.json +23 -0
  28. package/template/entities/System/Auth/account_device.json +63 -0
  29. package/template/entities/System/Auth/account_login_log.json +54 -0
  30. package/template/entities/System/Auth/account_oauth.json +45 -0
  31. package/template/entities/System/Auth/api_keys.json +1 -1
  32. package/template/entities/System/Auth/identity_verification.json +95 -0
  33. package/template/entities/System/Auth/license.json +1 -1
  34. package/template/entities/System/Auth/password_history.json +20 -0
  35. package/template/entities/System/Auth/rbac_roles.json +1 -1
  36. package/template/entities/System/Backup/backup_log.json +62 -0
  37. package/template/entities/System/Email/smtp_log.json +83 -0
  38. package/template/entities/System/Email/smtp_msg.json +104 -0
  39. package/template/entities/System/Notification/alimtalk_log.json +45 -0
  40. package/template/entities/System/Notification/alimtalk_msg.json +39 -0
  41. package/template/entities/System/Notification/friendtalk_log.json +48 -0
  42. package/template/entities/System/Notification/friendtalk_msg.json +63 -0
  43. package/template/entities/System/Notification/sms_log.json +26 -0
  44. package/template/entities/System/Notification/sms_msg.json +52 -0
  45. package/template/entities/System/Notification/sms_verification.json +40 -0
  46. package/template/entities/System/Payment/pg_cancel.json +45 -0
  47. package/template/entities/System/Payment/pg_order.json +88 -0
  48. package/template/entities/System/Payment/pg_webhook_log.json +37 -0
  49. package/template/entities/System/Push/push_log.json +71 -0
  50. package/template/entities/System/Push/push_msg.json +55 -0
  51. package/template/entities/System/Storage/file_backup_log.json +46 -0
  52. package/template/entities/System/Storage/file_download_log.json +41 -0
  53. package/template/entities/System/Storage/file_meta.json +59 -0
  54. package/template/entities/System/system_audit_log.json +2 -1
  55. package/template/entities/company.json +1 -1
  56. package/template/entities/{product.json → goods.json} +6 -10
  57. package/template/entities/todo.json +1 -1
  58. package/template/samples/entities/README.md +2 -2
  59. package/template/scripts/generate-env-keys.sh +16 -0
  60. package/template/templates/email/account/dormancy_warning.html +20 -0
  61. package/template/templates/email/account/password_expiry_warning.html +21 -0
  62. package/template/templates/email/auth/2fa_disabled.html +23 -0
  63. package/template/templates/email/auth/2fa_recovery_regenerated.html +31 -0
  64. package/template/templates/email/auth/2fa_setup_complete.html +43 -0
  65. package/template/templates/email/auth/email_verification.html +18 -0
  66. package/template/templates/email/auth/force_reset.html +18 -0
  67. package/template/templates/email/auth/password_reset.html +19 -0
  68. package/template/templates/email/auth/verification.html +15 -0
  69. package/template/templates/email/auth/verification_link.html +25 -0
  70. package/template/templates/email/auth/welcome.html +18 -0
  71. package/template/templates/email/backup/backup_completed.html +35 -0
  72. package/template/templates/email/backup/backup_failed.html +27 -0
  73. package/template/templates/email/backup/backup_partial.html +31 -0
  74. package/template/templates/email/layout.html +47 -0
  75. package/template/templates/email/order/order_confirmation.html +30 -0
  76. package/template/templates/email/storage/storage_quota_exceeded.html +37 -0
  77. package/template/templates/email/storage/storage_quota_warning.html +37 -0
  78. package/template/configs/cors.json +0 -7
  79. package/template/configs/jwt.json +0 -8
  80. package/template/entities/Account/account_audit.json +0 -16
@@ -0,0 +1,30 @@
1
+ <h2 style="margin: 0 0 16px; font-size: 22px; font-weight: 700; color: #1a1a2e;">주문이 확인되었습니다</h2>
2
+ <p style="margin: 0 0 24px; font-size: 15px; color: #555; line-height: 1.6;">
3
+ ${name|고객}님, 주문해 주셔서 감사합니다.
4
+ </p>
5
+ <div style="padding: 20px; background-color: #f8f8fa; border-radius: 6px; margin: 0 0 24px;">
6
+ <table role="presentation" width="100%" cellpadding="0" cellspacing="0">
7
+ <tr>
8
+ <td style="padding: 8px 0; font-size: 14px; color: #888;">주문번호</td>
9
+ <td style="padding: 8px 0; font-size: 14px; color: #1a1a2e; font-weight: 600; text-align: right;">${order_id|ORD-000001}</td>
10
+ </tr>
11
+ <tr>
12
+ <td style="padding: 8px 0; font-size: 14px; color: #888; border-top: 1px solid #eaeaea;">주문일시</td>
13
+ <td style="padding: 8px 0; font-size: 14px; color: #1a1a2e; text-align: right; border-top: 1px solid #eaeaea;">${order_date|2026-01-01}</td>
14
+ </tr>
15
+ <tr>
16
+ <td style="padding: 8px 0; font-size: 14px; color: #888; border-top: 1px solid #eaeaea;">상품</td>
17
+ <td style="padding: 8px 0; font-size: 14px; color: #1a1a2e; text-align: right; border-top: 1px solid #eaeaea;">${items|상품 1건}</td>
18
+ </tr>
19
+ <tr>
20
+ <td style="padding: 12px 0; font-size: 16px; font-weight: 700; color: #1a1a2e; border-top: 2px solid #1a1a2e;">총 결제금액</td>
21
+ <td style="padding: 12px 0; font-size: 16px; font-weight: 700; color: #1a1a2e; text-align: right; border-top: 2px solid #1a1a2e;">${total|50,000원}</td>
22
+ </tr>
23
+ </table>
24
+ </div>
25
+ <div style="text-align: center; margin: 0 0 24px;">
26
+ <a href="${detail_url|#}" style="display: inline-block; padding: 14px 36px; background-color: #1a1a2e; color: #ffffff; text-decoration: none; border-radius: 6px; font-size: 15px; font-weight: 600;">주문 상세 보기</a>
27
+ </div>
28
+ <p style="margin: 0; font-size: 13px; color: #aaa; line-height: 1.6;">
29
+ 주문 관련 문의사항이 있으시면 고객센터로 연락해 주세요.
30
+ </p>
@@ -0,0 +1,37 @@
1
+ <h2 style="margin: 0 0 16px; font-size: 22px; font-weight: 700; color: #e74c3c;">🚫 저장공간 초과</h2>
2
+ <p style="margin: 0 0 24px; font-size: 15px; color: #555; line-height: 1.6;">
3
+ 저장공간 사용량이 제한 용량을 초과했습니다. 파일 업로드가 차단됩니다. 즉시 불필요한 파일을 삭제하거나 쿼터를 늘려주세요.
4
+ </p>
5
+ <table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="margin: 0 0 24px;">
6
+ <tr>
7
+ <td style="padding: 16px 20px; background-color: #fdedec; border-radius: 6px; border-left: 4px solid #e74c3c;">
8
+ <table role="presentation" width="100%" cellpadding="0" cellspacing="0">
9
+ <tr>
10
+ <td style="padding: 4px 0; font-size: 14px; color: #555; width: 120px; font-weight: 600;">사용량</td>
11
+ <td style="padding: 4px 0; font-size: 14px; color: #333;">${used|0 B}</td>
12
+ </tr>
13
+ <tr>
14
+ <td style="padding: 4px 0; font-size: 14px; color: #555; width: 120px; font-weight: 600;">제한 용량</td>
15
+ <td style="padding: 4px 0; font-size: 14px; color: #333;">${limit|0 B}</td>
16
+ </tr>
17
+ <tr>
18
+ <td style="padding: 4px 0; font-size: 14px; color: #555; width: 120px; font-weight: 600;">사용률</td>
19
+ <td style="padding: 4px 0; font-size: 15px; font-weight: 700; color: #e74c3c;">${percent|0}%</td>
20
+ </tr>
21
+ <tr>
22
+ <td style="padding: 4px 0; font-size: 14px; color: #555; width: 120px; font-weight: 600;">업로드 시도</td>
23
+ <td style="padding: 4px 0; font-size: 14px; color: #333;">${upload_size|0 B}</td>
24
+ </tr>
25
+ </table>
26
+ </td>
27
+ </tr>
28
+ </table>
29
+ <!-- 사용률 바 (100%) -->
30
+ <div style="margin: 0 0 24px;">
31
+ <div style="background-color: #eee; border-radius: 4px; height: 12px; overflow: hidden;">
32
+ <div style="background-color: #e74c3c; height: 100%; width: 100%; border-radius: 4px;"></div>
33
+ </div>
34
+ </div>
35
+ <p style="margin: 0; font-size: 13px; color: #aaa; line-height: 1.6;">
36
+ 이 알림은 저장공간 사용량이 제한 용량을 초과했을 때 자동 발송됩니다.
37
+ </p>
@@ -0,0 +1,37 @@
1
+ <h2 style="margin: 0 0 16px; font-size: 22px; font-weight: 700; color: #e67e22;">⚠️ 저장공간 사용량 경고</h2>
2
+ <p style="margin: 0 0 24px; font-size: 15px; color: #555; line-height: 1.6;">
3
+ 저장공간 사용량이 경고 임계값에 도달했습니다. 오래된 파일을 정리하거나 쿼터를 늘려주세요.
4
+ </p>
5
+ <table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="margin: 0 0 24px;">
6
+ <tr>
7
+ <td style="padding: 16px 20px; background-color: #fef9e7; border-radius: 6px; border-left: 4px solid #e67e22;">
8
+ <table role="presentation" width="100%" cellpadding="0" cellspacing="0">
9
+ <tr>
10
+ <td style="padding: 4px 0; font-size: 14px; color: #555; width: 120px; font-weight: 600;">사용량</td>
11
+ <td style="padding: 4px 0; font-size: 14px; color: #333;">${used|0 B}</td>
12
+ </tr>
13
+ <tr>
14
+ <td style="padding: 4px 0; font-size: 14px; color: #555; width: 120px; font-weight: 600;">제한 용량</td>
15
+ <td style="padding: 4px 0; font-size: 14px; color: #333;">${limit|0 B}</td>
16
+ </tr>
17
+ <tr>
18
+ <td style="padding: 4px 0; font-size: 14px; color: #555; width: 120px; font-weight: 600;">사용률</td>
19
+ <td style="padding: 4px 0; font-size: 15px; font-weight: 700; color: #e67e22;">${percent|0}%</td>
20
+ </tr>
21
+ <tr>
22
+ <td style="padding: 4px 0; font-size: 14px; color: #555; width: 120px; font-weight: 600;">임계값</td>
23
+ <td style="padding: 4px 0; font-size: 14px; color: #333;">${threshold|80}%</td>
24
+ </tr>
25
+ </table>
26
+ </td>
27
+ </tr>
28
+ </table>
29
+ <!-- 사용률 바 -->
30
+ <div style="margin: 0 0 24px;">
31
+ <div style="background-color: #eee; border-radius: 4px; height: 12px; overflow: hidden;">
32
+ <div style="--quota-percent: ${percent|0}%; background-color: #e67e22; height: 100%; width: var(--quota-percent); max-width: 100%; border-radius: 4px;"></div>
33
+ </div>
34
+ </div>
35
+ <p style="margin: 0; font-size: 13px; color: #aaa; line-height: 1.6;">
36
+ 이 알림은 저장공간 사용량이 임계값(${threshold|80}%)을 초과했을 때 자동 발송됩니다.
37
+ </p>
@@ -1,7 +0,0 @@
1
- {
2
- "cors_enabled": true,
3
- "cors_allow_credentials": false,
4
- "cors_allow_headers": "Origin,Content-Type,Accept,Authorization,X-API-Key,X-Signature,X-Timestamp,X-Nonce,X-Transaction-ID",
5
- "cors_allow_methods": "GET,POST,PUT,PATCH,DELETE,OPTIONS",
6
- "cors_allow_origins": "*"
7
- }
@@ -1,8 +0,0 @@
1
- {
2
- "enabled": true,
3
- "secret": "${JWT_SECRET}",
4
- "access_ttl_sec": 3600,
5
- "refresh_ttl_sec": 1209600,
6
- "issuer": "entity-server",
7
- "algorithm": "HS256"
8
- }
@@ -1,16 +0,0 @@
1
- {
2
- "name": "account_audit",
3
- "description": "account 감사 로그. JWT 인증 시에만 account_seq는 required",
4
- "index": {
5
- "account_seq": {
6
- "comment": "계정 seq (JWT 인증 시 account.seq 참조. HMAC은 nullable)",
7
- "type": "bigint",
8
- "nullable": true
9
- },
10
- "action": {
11
- "comment": "작업 유형",
12
- "type": ["INSERT", "UPDATE", "DELETE", "LOGIN", "LOGOUT"],
13
- "required": true
14
- }
15
- }
16
- }