panel-redesign.md gains four sections. Routes: paths follow the new names and structure (/overview, /outbound/..., /inbound/..., /server/..., /account), with one <page>/fragment name, the application form as a single POST and TestRoutesFollowNavigation. No compatibility: the redesign is 2.0.0, old paths are removed without redirects, the migration chain is replaced by one baseline and 2.0 starts from an empty data directory (the only live installation is the owner's); schema-squash ships as a step of this plan without its upgrade gate. Who sees what: a domain administrator manages assigned inbound domains, granted separately from outbound (user_inbound_domains, per-domain authorization under /inbound/). Room for roadmap items: where antispam lists, quarantine and preflight land, and that a feature's screens are drawn mockup-first in this system. Mockups: the Reload configuration box the first pass missed (now on Server > Health), the flash component and the sp-help link that replaces the help drawer, and the user form with two assignment lists. The antispam plan no longer points its mockup at the superseded panel-ui folder. Checklist 3/21. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
404 lines
5.1 KiB
JSON
404 lines
5.1 KiB
JSON
{
|
||
"account": [
|
||
"head",
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-6": [
|
||
"box[Panel credentials]:body"
|
||
]
|
||
},
|
||
{
|
||
"is-6": [
|
||
"box[What happens]:body"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"backup": [
|
||
"head",
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-6": [
|
||
"box[Full backup]:body"
|
||
]
|
||
},
|
||
{
|
||
"is-6": [
|
||
"box[Import a domain]:body"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"dmarc-domain": [
|
||
"head+postmark+actions",
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-5": [
|
||
"box[Sources · 7 days]:table"
|
||
]
|
||
},
|
||
{
|
||
"is-7": [
|
||
"box[Reports]:table"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"dmarc-report": [
|
||
"head",
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-6": [
|
||
"box[Report]:body"
|
||
]
|
||
},
|
||
{
|
||
"is-6": [
|
||
"box[Published policy]:body"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"box[Records]:table"
|
||
],
|
||
"dmarc": [
|
||
"head",
|
||
"box[Ingest]:body",
|
||
"box[Recent reports]:table"
|
||
],
|
||
"health": [
|
||
"head+actions",
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-6": [
|
||
"box[Machine]:table"
|
||
]
|
||
},
|
||
{
|
||
"is-6": [
|
||
"box[Processes]:table"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-4": [
|
||
"box[TLS certificate]:body"
|
||
]
|
||
},
|
||
{
|
||
"is-4": [
|
||
"box[Milter sockets]:table"
|
||
]
|
||
},
|
||
{
|
||
"is-4": [
|
||
"box[Hostname and reverse DNS]:body"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"box[Configuration]:body"
|
||
],
|
||
"help": [
|
||
"head",
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-3": [
|
||
"side_menu"
|
||
]
|
||
},
|
||
{
|
||
"is-9": [
|
||
"box[Overview]:help×3",
|
||
"box[Outbound]:help×3"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"in-domain-delete": [
|
||
"head",
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-7": [
|
||
"box.sp-danger-zone[This cannot be undone]:body"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"in-domain": [
|
||
"head+postmark+actions",
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-3": [
|
||
"side_menu"
|
||
]
|
||
},
|
||
{
|
||
"is-9": [
|
||
"box[MX record]:record",
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-6": [
|
||
"box[Upstream]:body"
|
||
]
|
||
},
|
||
{
|
||
"is-6": [
|
||
"box[Valid recipients]:body"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"in-domains": [
|
||
"head",
|
||
"box[Add a domain]:body",
|
||
"box[Domains]:table"
|
||
],
|
||
"in-log": [
|
||
"head",
|
||
"box[Messages]:table"
|
||
],
|
||
"in-queue": [
|
||
"head",
|
||
"box[Waiting]:empty",
|
||
"box[How retries work]:body"
|
||
],
|
||
"out-app-created": [
|
||
"head",
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-7": [
|
||
"box.sp-credential[Shown once]:record"
|
||
]
|
||
},
|
||
{
|
||
"is-5": [
|
||
"box[Connect with]:body"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"out-app": [
|
||
"head+actions",
|
||
{
|
||
"form": [
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-4": [
|
||
"box[Sender]:body"
|
||
]
|
||
},
|
||
{
|
||
"is-4": [
|
||
"box[Client IP allow-list]:body"
|
||
]
|
||
},
|
||
{
|
||
"is-4": [
|
||
"box[Rate limit]:body"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"submit_row"
|
||
]
|
||
}
|
||
],
|
||
"out-domain-delete": [
|
||
"head",
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-7": [
|
||
"box.sp-danger-zone[This cannot be undone]:body"
|
||
]
|
||
},
|
||
{
|
||
"is-5": [
|
||
"box[Moving it instead?]:body"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"out-domain-settings": [
|
||
"head",
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-6": [
|
||
"box[DMARC report address]:body",
|
||
"box[Export domain]:body"
|
||
]
|
||
},
|
||
{
|
||
"is-6": [
|
||
"box[Rate limit]:body",
|
||
"box.sp-danger-zone[Delete domain]:body"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"out-domain": [
|
||
"head+postmark+actions",
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-3": [
|
||
"side_menu"
|
||
]
|
||
},
|
||
{
|
||
"is-9": [
|
||
"box[DNS records]:record×3",
|
||
"box[Applications]:table",
|
||
"box[Connection]:body"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"out-domains": [
|
||
"head",
|
||
"box[Add a domain]:body",
|
||
"box[Domains]:table"
|
||
],
|
||
"out-log": [
|
||
"head",
|
||
"box[Messages]:table"
|
||
],
|
||
"out-message": [
|
||
"head",
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-7": [
|
||
"box[Message]:body"
|
||
]
|
||
},
|
||
{
|
||
"is-5": [
|
||
"box[History]:body"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"box[Delivery log]:log"
|
||
],
|
||
"out-queue": [
|
||
"head",
|
||
"box[Waiting]:table",
|
||
"box[How retries work]:body"
|
||
],
|
||
"overview": [
|
||
"head+postmark",
|
||
"box[Server health]:health",
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-7": [
|
||
"box[Outbound domains]:table"
|
||
]
|
||
},
|
||
{
|
||
"is-5": [
|
||
"box[Inbound domains]:table"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"settings": [
|
||
"head",
|
||
{
|
||
"form": [
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-7": [
|
||
"box[DMARC aggregate reports]:record×2"
|
||
]
|
||
},
|
||
{
|
||
"is-5": [
|
||
"box[Log retention]:body",
|
||
"box[Sending rate limits]:body"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"submit_row"
|
||
]
|
||
}
|
||
],
|
||
"system-log": [
|
||
"head",
|
||
"box[Recent lines]:log"
|
||
],
|
||
"user-delete": [
|
||
"head",
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-7": [
|
||
"box.sp-danger-zone[This cannot be undone]:body"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"user": [
|
||
"head+actions",
|
||
{
|
||
"form": [
|
||
{
|
||
"columns": [
|
||
{
|
||
"is-6": [
|
||
"box[Sign-in]:body"
|
||
]
|
||
},
|
||
{
|
||
"is-6": [
|
||
"box[Outbound domains]:body",
|
||
"box[Inbound domains]:body"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"submit_row"
|
||
]
|
||
}
|
||
],
|
||
"users": [
|
||
"head+actions",
|
||
"box[Panel users]:table"
|
||
]
|
||
}
|