SAService Architect Open designer
SAService ArchitectDocumentation
Code generation Graph -> generation job -> signed ZIP download

Generate Project and Download Its ZIP Archive

Generate target-language services from the current graph through an authenticated asynchronous job.

When to use

Choose Generate project in the project menu when the current graph is ready for native code generation.

Behavior

  • The application-bar project menu contains Generate project. The current in-memory graph is submitted; save separately to retain the editable project.
  • The Designer uses the signed-in Cognito ID token and its configured generation API URL. It submits POST /v1/user/generation-jobs and polls the returned statusUrl while the job is QUEUED or RUNNING.
  • ServiceGen validates the graph before generating services, shared modules, transport contracts, and operational files. Components remain concrete streams; editor grouping is not a runtime wrapper.
  • After SUCCEEDED, the Designer requests statusUrl + /download. The response supplies a short-lived signed archive URL and fileName. The browser downloads directly from that URL without forwarding the Cognito token.
  • The fallback filename is generated-project.zip. This browser path does not decode a base64 archive response or call the legacy synchronous generateCode endpoint.
  • A FAILED job exposes its error code. Authentication, network, validation, and polling errors are shown instead of treating the request as a successful download.

Current browser API flow

Only Service Architect API requests receive the authentication token. The archive download uses its signed URL. Beta and production have separate configured API roots.

POST /v1/user/generation-jobs
GET <statusUrl>
GET <statusUrl>/download
GET <signed archive URL>

First download and regeneration

For a new workspace, extract the archive and follow its README. For an existing implementation, inspect make merge-check before make merge, then check preserved business functions against their regenerated contracts.

Python project is a separate export

Download Python project in the same menu creates a ZIP of the current authoring files in the browser. It is not native service generation and does not call the generation backend.

Generation stages properties

Observable stages in the current Designer.

StageLocationDescription
Generate projectProject menu

Submit the current graph using the signed-in session.

QUEUED / RUNNINGJob status

Wait and poll using the returned status URL.

FAILEDJob status

Display the returned error instead of downloading an incomplete project.

SUCCEEDEDJob status

Request the signed download URL and archive filename.

Download Python projectProject menu

Export authoring files separately from generated runtime code.

Using the downloaded archive

# First generation
unzip <generated-project>.zip
cd <generated-project>
make init
make build

# Regenerating an existing workspace
make merge-check ARCHIVE=../<generated-project>.zip
make merge ARCHIVE=../<generated-project>.zip
make merge-validate