aboutsummaryrefslogtreecommitdiffstats
path: root/docs/plans/2026-09-10-vendor-destinations.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-10 16:56:10 +0200
committerDanilo M. <danix@danix.xyz>2026-09-10 16:56:10 +0200
commit9a13bd372a79d0c944d06801b1c3c67f8e8b8397 (patch)
tree7d6b2bfd37e202cae6969cefe39da77c2edd0fbb /docs/plans/2026-09-10-vendor-destinations.md
parent59106867052157a78b825224500f974f985362de (diff)
downloadabusectl-9a13bd372a79d0c944d06801b1c3c67f8e8b8397.tar.gz
abusectl-9a13bd372a79d0c944d06801b1c3c67f8e8b8397.zip
feat: render the destination sections at init
init.build() can now write [misp], [abusedb] and [urlhaus], the three sections report reads, so a user no longer has to hand-edit the config for them. Follows the [reporter] pattern: a section is emitted only when something was answered for it, never with an empty api_key. A half-answered pair (misp_url given, misp_api_key skipped, or vice versa) is rejected rather than silently written: config.load() would classify it "incomplete" and report would refuse, but only after the user believed setup succeeded. Task 8's prompts are the normal route in, but build() is pure and a caller can hand-build a dict, so this is enforced here too. Also fixes FOOTER, which still promised a single [vendors] table; the spec settled three separate sections and [misp] is no longer "a later part" since this plan builds it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0176FYdVfpzUq8S9jecqQqL6
Diffstat (limited to 'docs/plans/2026-09-10-vendor-destinations.md')
0 files changed, 0 insertions, 0 deletions