등록 모달의 '한 줄 설명' input 을 여러 줄 textarea 로 바꾸고, 설명을
markdown-it 로 렌더링한다(html:false 로 raw HTML 이스케이프·javascript:
링크 차단 — XSS 안전). 상세 화면은 마크다운으로, 카드 미리보기는 기호를
걷어낸 순수 텍스트(mdPlain) + 3줄 클램프로 표시.
'저장소 README 가져오기' 버튼과 GET /api/readme 라우트를 추가해 repo_url
의 Gitea README 를 설명란으로 불러올 수 있다(gitea.js fetchReadme).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
투명 텍스트라 버튼처럼 안 보이던 .toggle-share-btn 을 테두리·패딩 있는
버튼 모양으로 변경. 프로젝트 상세 모달(소유자)에 '비공개로 전환/공개로
전환' 버튼을 추가하고, 전환 라우트가 return_to 를 존중하도록 해 모달에서
전환하면 모달이 다시 열린 상태로 돌아온다.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat/sso 작업을 라우트 개편된 현재 main 에 이식.
- handleCallback 이 id_token 반환, 콜백에서 분리해 session.idToken 에만 보관(뷰/DB 비노출)
- logoutUrl(): end_session_endpoint + id_token_hint 로 확인화면 없이 즉시 로그아웃
- /logout: 로컬 세션 destroy 후 Keycloak end-session 으로 리다이렉트해 SSO 세션까지 종료
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- requireAuth: /login 거치지 않고 loginRedirect로 직접 Keycloak으로
- /login 라우트도 oidcReady면 즉시 리다이렉트
- OIDC discovery 실패 시에만 안내 페이지 폴백, /api/*는 401 유지
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Express+EJS+Postgres 사내 개발 포털.
- Keycloak OIDC(사번 로그인), GitHub 감성 UI
- 사이트 모음 + 프로젝트 공유/코멘트/스타
- DB: OpenEverest appdb portal schema (portal_app role)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>