Prepare definitive SMTP rejection proof and builder mail handoff
Some checks failed
Use-case regression gate / usecase-regressions (push) Has been cancelled
Some checks failed
Use-case regression gate / usecase-regressions (push) Has been cancelled
Assistant: codex Assistant-Model: gpt-6.1-sol Assistant-Session: 01a198ed-70cc-7362-a569-d5dbef39b86a
This commit is contained in:
parent
a36276395a
commit
caf866d66e
8 changed files with 645 additions and 31 deletions
|
|
@ -102,6 +102,8 @@ elif action=='list':
|
|||
elif action=='prepare':
|
||||
raw=base64.b64decode(r['raw_base64'],validate=True)
|
||||
result=m.prepare(ledger,raw,r['recipient'],policy,r['review'],invitation_payload=r.get('invitation_payload'))
|
||||
elif action=='prepare-rejection':
|
||||
result=m.prepare_rejection(ledger,r['recipient'],r['username'],policy,r['review'])
|
||||
elif action=='release-untracked':
|
||||
result=m.prepare_untracked_release(ledger, audit if audit.exists() else None,
|
||||
r['recipient'], r['reason'], r['created_at'], r['review'])
|
||||
|
|
@ -353,6 +355,7 @@ def main(argv=None):
|
|||
"observe",
|
||||
"list",
|
||||
"prepare",
|
||||
"prepare-rejection",
|
||||
"release",
|
||||
"release-untracked",
|
||||
"apply",
|
||||
|
|
@ -364,6 +367,7 @@ def main(argv=None):
|
|||
parser.add_argument("--packet", type=Path)
|
||||
parser.add_argument("--message", type=Path)
|
||||
parser.add_argument("--recipient")
|
||||
parser.add_argument("--username")
|
||||
parser.add_argument("--reason")
|
||||
parser.add_argument("--created-at")
|
||||
parser.add_argument("--review")
|
||||
|
|
@ -378,10 +382,17 @@ def main(argv=None):
|
|||
return 0
|
||||
require(args.packet is not None and args.packet.is_absolute(), "private_packet_required")
|
||||
operation.private_directory(args.packet.parent)
|
||||
if args.action in {"prepare", "release", "release-untracked", "prepare-expiry"}:
|
||||
if args.action in {
|
||||
"prepare",
|
||||
"prepare-rejection",
|
||||
"release",
|
||||
"release-untracked",
|
||||
"prepare-expiry",
|
||||
}:
|
||||
require(not args.packet.exists(), "new_packet_required")
|
||||
request.update(
|
||||
recipient=args.recipient,
|
||||
username=args.username,
|
||||
reason=args.reason,
|
||||
created_at=args.created_at,
|
||||
review=args.review,
|
||||
|
|
@ -452,7 +463,10 @@ def main(argv=None):
|
|||
if args.action == "apply":
|
||||
if packet["plan"].get("action") == "expire-raw":
|
||||
request["action"] = "apply-expiry"
|
||||
elif packet["plan"]["action"] == "suppress":
|
||||
elif (
|
||||
packet["plan"]["action"] == "suppress"
|
||||
and packet["plan"].get("evidence_kind") != "permanent-smtp-rejection"
|
||||
):
|
||||
require(
|
||||
args.message is not None
|
||||
and args.message.is_file()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue