The Assembly Line Project is a collection of volunteers, students, and institutions who joined together during the COVID-19 pandemic to help increase access to the court system. Our vision is mobile-friendly, easy to use guided online forms that help empower litigants to access the court remotely.
Our signature project is CourtFormsOnline.org.
We designed a step-by-step, assembly line style process for automating court forms on top of Docassemble and built several tools along the way that you can use in your home jurisdiction.
This package contains an automation and rapid prototyping tool to support authoring robust, consistent, and attractive Docassemble interviews that help complete court forms. Upload a labeled PDF or DOCX file, and the Assembly Line Weaver will produce a runnable, clean code, draft of a Docassemble interview that you can continue to edit and refine.
New interviews use one mandatory interview order block. To generate separate
main order and reusable form order blocks, select Separate main order and
interview order blocks under Create project → Advanced settings. API callers
can set separate_main_order=true; it defaults to false. Existing interviews
keep their authored order blocks when opened or edited.
Read more on our documentation page.
- https://github.com/SuffolkLitLab/docassemble-AssemblyLine
- https://github.com/SuffolkLitLab/docassemble-ALMassachusetts
- https://github.com/SuffolkLitLab/docassemble-MassAccess
- https://github.com/SuffolkLitLab/docassemble-ThemeTemplate
- https://github.com/SuffolkLitLab/EfileProxyServer
https://suffolklitlab.org/docassemble-AssemblyLine-documentation/
When installed on a docassemble server, ALWeaver exposes a custom Flask API:
POST /al/api/v1/weaver(primary)GET /al/api/v1/weaver/jobs/{job_id}(async job polling)DELETE /al/api/v1/weaver/jobs/{job_id}(async job cleanup)GET /al/api/v1/weaver/openapi.json(OpenAPI spec)GET /al/api/v1/weaver/docs(human-readable docs)
The API uses docassemble's API key authentication via api_verify().
The POST endpoint defaults to synchronous behavior, and supports optional
asynchronous execution with mode=async (or async=true).
Publishing to GitHub uses Docassemble's GitHub connection. Weaver also writes
ALKiln test workflows under .github/workflows/, and GitHub refuses those
files unless the connection may change workflows. Without that permission the
other files still publish, existing workflows are kept, and the publish dialog
says which of the fixes below is needed.
- OAuth App (Docassemble's usual setup): the token needs the
workflowscope as well asrepo. Docassemble's own GitHub page does not ask for it; connect through Configure GitHub in Weaver's publish dialog, which does. If an organization restricts third-party access, it must also approve the OAuth App. - GitHub App: scopes are ignored. In the App's settings, set the repository permissions Contents and Workflows to Read and write (and Administration to Read and write if Weaver should create repositories). Install the App on every account or organization people publish to. After changing permissions, an owner of each installation must accept the updated permissions under Settings → Applications → Installed GitHub Apps; until then the old permissions still apply.
Uploaded-document project generation in the graphical editor, importing a
template already in a project, publishing a project to GitHub, and asynchronous
API requests require ALWeaver's task module to be registered with Docassemble's global Celery configuration. Add
the module to the existing celery modules list in the Docassemble
configuration; preserve any modules already listed:
celery modules:
- docassemble.ALWeaver.api_weaver_workerAfter changing the configuration, restart or redeploy both the Docassemble web service and every Celery worker so that they load the same task registry. Blank project creation, ordinary graphical/source editing, and synchronous API calls do not require this module.
ALWeaver checks this setting when its editor module starts and whenever the
editor page loads. If it is missing, the server logs a warning and the editor
shows a persistent setup notice before a developer selects a file to generate.
An attempted background request fails with HTTP 503, a structured
async_not_configured API error (or editor_async_not_configured from the
graphical editor), and a link back to these instructions. Weaver does not enqueue
an unregistered task or fall back to an in-process thread.
The revisioned graphical source-patch API is an opt-in beta. Set
WEAVER_ENABLE_PATCH_MODEL: true in the Docassemble configuration (or the same
environment variable) to enable it. The default production path remains off
until graphical editing paths have migrated to exact source-range commands.
The editor's interview debugger is enabled by default for authenticated
developers and administrators. It runs the real interview in a separate test
session beside current-question details, a step recorder, variable inspection,
scenario seeding, and back navigation. Set weaver: {runtime inspector: false}
(or WEAVER_ENABLE_RUNTIME_INSPECTOR: false) to turn it off. Its server API uses
owner-scoped target sessions and a fixed read-only al_weaver.inspect_* action
allowlist; Docassemble remains the only interview runtime.
See the CHANGELOG for more information.
Quinten Steenhuis, qsteenhuis@suffolk.edu
Michelle
Bryce Willey, bwilley@suffolk.edu
Lily
David Colarusso
Nharika Singh
To use auto-drafting mode, you can get an Open AI API Key and set it in your docassemble configuration.
open ai:
key: ...