Seed ACS test login accounts
This commit is contained in:
@@ -63,3 +63,7 @@ Node 서버에 Auth API를 추가했다.
|
|||||||
2026-07-14 사용자가 `a/1`로 운영 URL에서 다시 로그인 시도했으나 404가 재현되었다.
|
2026-07-14 사용자가 `a/1`로 운영 URL에서 다시 로그인 시도했으나 404가 재현되었다.
|
||||||
|
|
||||||
판단: 운영 서버가 아직 Auth API 추가 코드로 재배포되지 않은 상태다. 로컬 변경분을 원격 저장소에 push하고 Coolify 재배포가 완료된 뒤 다시 테스트해야 한다.
|
판단: 운영 서버가 아직 Auth API 추가 코드로 재배포되지 않은 상태다. 로컬 변경분을 원격 저장소에 push하고 Coolify 재배포가 완료된 뒤 다시 테스트해야 한다.
|
||||||
|
|
||||||
|
2026-07-14 Auth API 커밋 배포 후 `POST /api/auth/login` 응답이 404에서 500으로 변경되었다.
|
||||||
|
|
||||||
|
판단: 라우터는 배포에 반영되었고, 남은 문제는 운영 DB의 사용자 seed 또는 로그인 처리 중 DB 상태 문제로 좁혀졌다. 다음 배포부터 테스트 계정이 자동 보장되도록 `migrations/005_seed_test_users.sql`을 추가한다.
|
||||||
|
|||||||
48
migrations/005_seed_test_users.sql
Normal file
48
migrations/005_seed_test_users.sql
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
-- Ensure baseline ACS test accounts exist in the Node/PostgreSQL deployment.
|
||||||
|
-- Passwords:
|
||||||
|
-- admin/security/host = ChangeMe123!
|
||||||
|
-- a/s/h = 1
|
||||||
|
|
||||||
|
WITH upserted AS (
|
||||||
|
INSERT INTO users (
|
||||||
|
created_at,
|
||||||
|
updated_at,
|
||||||
|
username,
|
||||||
|
password_hash,
|
||||||
|
full_name,
|
||||||
|
email,
|
||||||
|
department,
|
||||||
|
must_change_password,
|
||||||
|
enabled,
|
||||||
|
locked
|
||||||
|
)
|
||||||
|
VALUES
|
||||||
|
(now(), now(), 'admin', '$2a$12$7FBM5I4IOmKQHmBbAm2AAu3HQ3FvOkazzuBk1Hnd.gr68UekEusEa', 'Admin', 'admin@itcenter.local', 'IT Ops', TRUE, TRUE, FALSE),
|
||||||
|
(now(), now(), 'security', '$2a$12$7FBM5I4IOmKQHmBbAm2AAu3HQ3FvOkazzuBk1Hnd.gr68UekEusEa', 'Security', 'security@itcenter.local', 'Security', TRUE, TRUE, FALSE),
|
||||||
|
(now(), now(), 'host', '$2a$12$7FBM5I4IOmKQHmBbAm2AAu3HQ3FvOkazzuBk1Hnd.gr68UekEusEa', 'Host', 'host@itcenter.local', 'Dev Team', TRUE, TRUE, FALSE),
|
||||||
|
(now(), now(), 'a', '$2a$12$aQ84.8Z4w/9GLG4gJkBu7OAHU3v9/BR5ESLimxpnETZ.pxnzylgkW', 'Admin', 'a@itcenter.local', 'IT Ops', FALSE, TRUE, FALSE),
|
||||||
|
(now(), now(), 's', '$2a$12$aQ84.8Z4w/9GLG4gJkBu7OAHU3v9/BR5ESLimxpnETZ.pxnzylgkW', 'Security', 's@itcenter.local', 'Security', FALSE, TRUE, FALSE),
|
||||||
|
(now(), now(), 'h', '$2a$12$aQ84.8Z4w/9GLG4gJkBu7OAHU3v9/BR5ESLimxpnETZ.pxnzylgkW', 'Host', 'h@itcenter.local', 'Dev Team', FALSE, TRUE, FALSE)
|
||||||
|
ON CONFLICT (username) DO UPDATE
|
||||||
|
SET updated_at = now(),
|
||||||
|
password_hash = EXCLUDED.password_hash,
|
||||||
|
full_name = EXCLUDED.full_name,
|
||||||
|
email = EXCLUDED.email,
|
||||||
|
department = EXCLUDED.department,
|
||||||
|
must_change_password = EXCLUDED.must_change_password,
|
||||||
|
enabled = TRUE,
|
||||||
|
locked = FALSE
|
||||||
|
RETURNING id, username
|
||||||
|
)
|
||||||
|
DELETE FROM user_roles
|
||||||
|
WHERE user_id IN (SELECT id FROM upserted);
|
||||||
|
|
||||||
|
INSERT INTO user_roles (user_id, role)
|
||||||
|
SELECT id, role
|
||||||
|
FROM (
|
||||||
|
SELECT id, 'ADMIN' AS role FROM users WHERE username IN ('admin', 'a')
|
||||||
|
UNION ALL
|
||||||
|
SELECT id, 'SECURITY' AS role FROM users WHERE username IN ('security', 's')
|
||||||
|
UNION ALL
|
||||||
|
SELECT id, 'HOST' AS role FROM users WHERE username IN ('host', 'h')
|
||||||
|
) seeded_roles;
|
||||||
Reference in New Issue
Block a user