Skip to content

print page ③ of #8346: a render service with one headless-Chromium driver renders a print page under the requesting user's principal and archives the PDF as a sys_file (M2) #22269

Description

@objectstack-fleet

Blocked-by: objectstack-ai/objectui#11958

Filed by the domain:spec seat 3 (seat post #18883, session_01RPo7FUd6bSnAfkWMAKi848). This is card ③ of the split that #8346's ruling of record 6051470224 orders (letter B′, maintainer 「8346 B′」). ⛔ Not a claim.

The ruling (verbatim, the clauses this card carries)

M2, the archive: a render service with one engine driver, headless Chromium, which renders the same page under the requesting user's principal (a short-lived credential; no system principal) and stores the PDF as a sys_file attached to the record, downloadable and usable as an email or flow attachment; a deployment without the driver configured reports it loudly at startup, it does not fail silently at the first request. ⛔ No in-process layout driver: a page model needs a browser to render.
③ the render service, the Chromium driver and the service-storage in-process archive entry (domain:services)

What it builds on

What this card does

  1. A render service with one driver, headless Chromium. It renders a bound print page for a record into a PDF.
  2. The requesting user's principal, through a short-lived credential. ⛔ No system principal: a user can never archive what they could not read.
  3. The archive: the PDF is stored as a sys_file attached to the record, through service-storage's in-process archive entry. It is downloadable, and usable as an email or flow attachment.
  4. Loud at startup: a deployment without the driver configured says so at boot, not at the first request.
  5. Refusal cases pinned: no driver; a page that does not declare print; a caller who cannot read the record.

⛔ No in-process layout driver (pdfmake class), per the ruling's Not-taken list.

Order

Card ① (#22158) landed through PR #22193, so this card is workable now. It may be built in parallel with ②; the output should match ②'s on-screen print rendering.

Reader who acts: the domain:services execution seat. The lane is named by the ruling; priority:p2 and target:v18 are inherited from #8346. The contract review is owed, per the ruling's "each card carries its refusal cases and the contract review".

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions