- Add PUT /v1/policy/rule endpoint for updating policy rules; expose full policy CRUD through the web UI with a dedicated policy page - Add certificate revoke, delete, and get-cert to CA engine and wire REST + gRPC routes; fix missing interceptor registrations - Update ARCHITECTURE.md to reflect v2 gRPC as the active implementation, document ACME endpoints, correct CA permission levels, and add policy/cert management route tables - Add POLICY.md documenting the priority-based ACL engine design - Add web/templates/policy.html for policy management UI Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
29 lines
1.1 KiB
HTML
29 lines
1.1 KiB
HTML
{{define "layout"}}<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Metacrypt{{block "title" .}}{{end}}</title>
|
|
<script src="/static/htmx.min.js"></script>
|
|
<link rel="stylesheet" href="/static/style.css">
|
|
</head>
|
|
<body>
|
|
<nav class="topnav">
|
|
<a class="topnav-brand" href="/">Metacrypt</a>
|
|
<div class="topnav-right">
|
|
{{if .Username}}
|
|
<a href="/dashboard" class="btn btn-ghost btn-sm">Dashboard</a>
|
|
<a href="/pki" class="btn btn-ghost btn-sm">PKI</a>
|
|
{{if .IsAdmin}}<a href="/policy" class="btn btn-ghost btn-sm">Policy</a>{{end}}
|
|
<span class="topnav-user">{{.Username}}</span>
|
|
{{if .IsAdmin}}<span class="badge">admin</span>{{end}}
|
|
<a href="/login" class="btn btn-ghost btn-sm" onclick="fetch('/v1/auth/logout',{method:'POST'})">Logout</a>
|
|
{{end}}
|
|
</div>
|
|
</nav>
|
|
<div class="{{block "container-class" .}}page-container{{end}}">
|
|
{{template "content" .}}
|
|
</div>
|
|
</body>
|
|
</html>{{end}}
|