<!doctype html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<head th:replace="~{fragments/layout :: head('DDS 권한 운영')}"></head>
<body>
<nav th:replace="~{fragments/layout :: nav}"></nav>
<main class="container py-4">
  <header class="page-title guided-hero">
    <span class="architecture-kicker">DEEP DATA SECURITY</span>
    <h1>DDS 권한 운영</h1>
    <p class="context-summary">권한 관리 · 보호 정책 관리 · 지식자료 관리 · 접근 검증</p>
    <details class="explanation-details">
      <summary>도움말</summary>
      <p>사용자·그룹·역할·접근 규칙을 기준으로 지식자료의 접근 범위를 운영합니다. DDS는 보호 객체별 DATA GRANT로 이 기준을 집행합니다.</p>
      <p class="mb-0">일상적인 권한 변경은 권한 관리에서 하고, 이 공간에서는 보호 상태와 실제 접근 결과를 확인합니다.</p>
    </details>
  </header>

  <div class="alert alert-warning" th:if="${runtimeError}">DDS 관리 데이터를 불러오지 못했습니다. <span th:text="${runtimeError}"></span></div>

  <section class="content-band">
    <div class="section-heading"><div><h2>권한 적용 흐름</h2><p class="section-subtitle">권한을 정하고, 보호 정책에 반영한 뒤 결과를 확인합니다.</p></div></div>
    <div class="menu-flow"><a href="/permissions"><strong>권한 관리</strong><span>사용자·그룹·역할과 접근 태그 규칙</span></a><a href="/dds-protection"><strong>보호 정책 관리</strong><span>보호 대상과 현재 집행 상태</span></a><a href="/vector-knowledge"><strong>지식자료 관리</strong><span>자료 등록과 권한 검색</span></a><a href="/dds-evidence"><strong>접근 검증</strong><span>실행 결과와 적용 근거</span></a></div>
    <details class="explanation-details mt-3"><summary>전체 구조 보기</summary><div class="architecture-map"><span>사용자 테이블 사용자</span><b>→</b><span>그룹 · 역할 · 접근 규칙</span><b>→</b><span>MCP Bearer</span><b>→</b><span>local DDS END USER Context</span><b>→</b><span>DATA GRANT</span><b>→</b><span>보호 VIEW · 검색 결과</span></div><div class="erd-map"><div><strong>CB_APP_USER</strong><small>업무 사용자</small></div><div><strong>CB_GROUP · CB_ROLE</strong><small>소속과 역할</small></div><div><strong>CB_PERMISSION_RULE</strong><small>TAG 허용·거부</small></div><div><strong>CB_AGENT_BEARER_KEY</strong><small>요청 사용자 식별</small></div><div><strong>CB_DDS_END_USER_MAP</strong><small>DDS 보안 사용자 매핑</small></div></div><p class="mb-0">업무 사용자는 기존 사용자 테이블에서 관리합니다. OCI IAM은 서비스의 DB Context attach만 승인하고, 실제 행·컬럼 권한은 해당 local DDS END USER의 DATA GRANT가 집행합니다.</p></details>
  </section>

  <section class="summary-grid" aria-label="현재 DDS 관리 현황">
    <a class="summary-tile" href="/permissions"><span class="label">역할</span><strong th:text="${#lists.size(roles)}">0</strong></a>
    <a class="summary-tile" href="/permissions"><span class="label">권한 규칙</span><strong th:text="${#lists.size(permissions)}">0</strong></a>
    <a class="summary-tile" href="/dds"><span class="label">직접 접근 검증 프로필</span><strong th:text="${configuredUserCount}">0</strong></a>
  </section>

  <section class="content-band">
    <div class="section-heading"><div><h2>현재 보호 상태</h2><p class="section-subtitle">지식자료 검색에 적용되는 보호 정책</p></div><a class="btn btn-sm rw-btn-primary" href="/dds-protection">정책 상태 확인</a></div>
    <div class="table-responsive"><table class="table table-sm align-middle"><thead><tr><th>보호 대상</th><th>상태</th><th></th></tr></thead><tbody>
      <tr><td>지식자료 검색</td><td>접근 태그 정책 적용</td><td><a href="/vector-knowledge">권한 검색</a></td></tr>
    </tbody></table></div>
    <details class="explanation-details mt-3">
      <summary>기술 상세</summary>
      <p class="mb-0">주 대상은 업무 분류값이 붙은 벡터 지식자료 검색입니다. 원본 테이블은 직접 접근 비교를 위한 고급 검증에만 사용합니다.</p>
    </details>
  </section>
</main>
</body>
</html>
