Add direct diagram connections, movable ports, and contextual authoring
This commit is contained in:
+26
-2
@@ -775,8 +775,8 @@ envelope allows both bounded representations plus small framing overhead.
|
||||
Compressed or encoded request bodies and browser Origin requests are
|
||||
not supported.</p>
|
||||
<p>Model admission permits at most 5,000 elements plus relations, 20,000 total
|
||||
persistent records (including the project, views and placements), and 50,000
|
||||
ordered step references. Source declaration counts and decoded JSON record
|
||||
persistent records (including the project, views, placements, routes and manual
|
||||
port anchors), and 50,000 ordered step references. Source declaration counts and decoded JSON record
|
||||
counts are checked before structural validation. Legacy import counts the
|
||||
occurrences and placements migration will generate before validating or
|
||||
migrating that model. Exceeding these budgets returns <span class="docutils literal">422 model_limit</span>;
|
||||
@@ -910,6 +910,30 @@ nor reserves IDs. A committed response omits the proposed model and source
|
||||
project. Commit must check the revision again. A no-op is successful with
|
||||
<span class="docutils literal">changed: false</span> and the original ETag.</p>
|
||||
</section>
|
||||
<section id="diagram-port-positions">
|
||||
<h2>Diagram port positions</h2>
|
||||
<p><span class="docutils literal">NodePlacement.port_anchors</span> is an optional list of
|
||||
<span class="docutils literal"><span class="pre">{"port":"<port</span> <span class="pre">UUID>","side":"Top","offset":0.25}</span></span> records. Side is
|
||||
Left, Right, Top, or Bottom; offset is a finite fraction from 0 through 1,
|
||||
measured from top on vertical edges and from left on horizontal edges.
|
||||
The port must be a direct child of the placement's semantic element and occur
|
||||
at most once in its anchor list. Placement is presentation state; it changes
|
||||
neither semantic ownership nor port direction. Other diagrams are independent.</p>
|
||||
<p>The existing transaction endpoint accepts:</p>
|
||||
<pre class="literal-block">{"commands":[{"SetPortAnchor":{
|
||||
"diagram":"<diagram UUID>","node":"<placement UUID>",
|
||||
"anchor":{"port":"<port UUID>","side":"Top","offset":0.25}
|
||||
}}]}</pre>
|
||||
<p><span class="docutils literal">SetPortAnchor</span> upserts by port UUID. <span class="docutils literal">RemovePortAnchor</span> takes
|
||||
<span class="docutils literal">{diagram,node,port}</span> and restores automatic positioning. Repeating a reset
|
||||
is a no-op only while the referenced port still belongs to that placement's
|
||||
element; missing or stale owners are rejected. Remove old anchors before
|
||||
reparenting in the same atomic batch. Both commands support ordinary dry run,
|
||||
ETag checks and source-project writeback. Rejected batches preserve the model,
|
||||
authored files and revision. JSON/source imports may omit <span class="docutils literal">port_anchors</span>;
|
||||
it defaults to <span class="docutils literal">[]</span> and empty lists are omitted on export. The normative
|
||||
diagram semantics and source spelling are in <span class="docutils literal">language.rst</span> section 5.</p>
|
||||
</section>
|
||||
<section id="contextual-process-and-chain-topology">
|
||||
<h2>Contextual process and chain topology</h2>
|
||||
<p>Operational processes and system functional chains can combine work
|
||||
|
||||
Reference in New Issue
Block a user