Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
207 commits
Select commit Hold shift + click to select a range
dc3203a
feat(release-tracks): add release track type definitions and data models
clemiller Mar 24, 2026
bfeeabb
feat(release-tracks): implement release track API client methods
clemiller Mar 24, 2026
59e0d09
feat: redesign object pages to use tab layout
clemiller Apr 6, 2026
9cddb6c
chore: formatting
clemiller Apr 6, 2026
d0f493c
fix: call setOrganizationIdentity when identity is saved instead of p…
seansica Apr 8, 2026
a72bbb6
feat(release-tracks): added release management dashboard page
clemiller Apr 16, 2026
25f8e6d
chore: formatting
clemiller Apr 16, 2026
063f50b
feat(release-tracks): added release track summary cards to dashboard …
clemiller Apr 22, 2026
3b5fd64
chore: formatting
clemiller Apr 22, 2026
4ffe3ef
fix(subtechniques): add parentTechniqueId to subtechnique post and va…
clemiller Apr 22, 2026
b4b2d8a
refactor(release-tracks): update naming conventions
clemiller Apr 23, 2026
13b869d
feat(release-tracks): create new release track modal
clemiller Apr 23, 2026
cbf2f4d
chore: formatting
clemiller Apr 23, 2026
c2eb5b6
fix(release-tracks): updated select option labels to be user-friendly…
clemiller Apr 24, 2026
364396b
feat(resources-drawer): removed history and notes from sidebar
clemiller Apr 24, 2026
45f0f49
chore: formatting
clemiller Apr 24, 2026
aff2baa
Merge pull request #827 from center-for-threat-informed-defense/810-r…
clemiller Apr 24, 2026
77aa023
chore: commenting out incomplete feature
clemiller Apr 24, 2026
3ca7ef0
Merge pull request #828 from center-for-threat-informed-defense/783-r…
clemiller Apr 24, 2026
79e161f
Merge branch 'next' into beta
clemiller Apr 24, 2026
0fb63bc
fix(release-tracks): enable create new track
clemiller Apr 29, 2026
b32fb0f
chore: formatting
clemiller Apr 29, 2026
b0a227f
Merge pull request #834 from center-for-threat-informed-defense/783-r…
clemiller Apr 29, 2026
f33d83a
feat(workflow-status): add object status chip
clemiller May 5, 2026
5de7a90
chore: formatting
clemiller May 5, 2026
066e349
Merge pull request #843 from center-for-threat-informed-defense/workf…
clemiller May 5, 2026
e17d076
fix(tabs): display custom tab options properly
clemiller May 5, 2026
9a708e5
chore: formatting
clemiller May 5, 2026
243c50e
Merge pull request #844 from center-for-threat-informed-defense/impro…
clemiller May 5, 2026
c2bc45b
refactor(workflow-status): cleanup workflow status types and enums
clemiller May 6, 2026
be32e4b
feat(release-tracks): release track workspace details tab
clemiller May 6, 2026
4174080
chore: formatting
clemiller May 6, 2026
3177576
Merge pull request #845 from center-for-threat-informed-defense/785-r…
clemiller May 6, 2026
58c125a
fix(template): prevent errors when object is accessed before load
clemiller May 6, 2026
2b5edb5
feat(release-tracks): implement promote and demote functionality
clemiller May 6, 2026
144377c
test(release-track-page): fix injector error for http client
clemiller May 6, 2026
2d35f01
test(release-track-page): add provider for ActivatedRoute
clemiller May 6, 2026
411a912
Merge pull request #846 from center-for-threat-informed-defense/787-p…
clemiller May 6, 2026
043681a
style(status-chip): keep chip label font size at 12px
clemiller May 11, 2026
152f3e7
feat(release-tracks): add release track export downloads
clemiller May 11, 2026
33fdfc3
Merge pull request #850 from center-for-threat-informed-defense/791-e…
clemiller May 11, 2026
7e4c86b
style(release-tracks): improve release lane layout and scrolling
clemiller May 11, 2026
68d7d55
feat(release-tracks): add workflow review board
clemiller May 11, 2026
0f2c43f
style(release-tracks): consistent awaiting review color
clemiller May 11, 2026
159b456
style(release-tracks): adjust text colors
clemiller May 11, 2026
22d1730
refactor: rename release track object card
clemiller May 11, 2026
89f668a
feat(user-avatar): add user initials avatar component in place of jde…
clemiller May 11, 2026
d7f8e9d
chore: remove jdenticon dependencies
clemiller May 11, 2026
4daaefe
refactor: simplify release track summary cards
clemiller May 11, 2026
965eae1
Merge pull request #853 from center-for-threat-informed-defense/788-r…
clemiller May 11, 2026
cd2a11e
feat(navigation): move primary navigation to sidebar
clemiller May 13, 2026
c9ebc13
feat(navigation): add dashboard sub-navigation
clemiller May 14, 2026
4e98c79
feat(navigation): add documentation sub-navigation
clemiller May 20, 2026
e5686ba
fix(navigation): collapse restricted nav groups when logged out
clemiller May 20, 2026
7f85813
Merge pull request #856 from center-for-threat-informed-defense/777-n…
clemiller May 20, 2026
70b3ee1
feat(header): improve account avatar trigger and menu
clemiller May 21, 2026
1c5a447
feat(dashboard): add knowledge base overview charts
clemiller May 21, 2026
cca7030
feat(navigation): show pending user account indicator
clemiller May 21, 2026
2f58eaa
Merge pull request #858 from center-for-threat-informed-defense/269-s…
clemiller May 21, 2026
d1165d9
feat: add diff view to the release dashboard page
adpare Jun 4, 2026
4197fe4
Merge branch 'next' into beta
clemiller Jun 12, 2026
bb672f2
feat(release-tracks): consolidate review workflow into details view
clemiller Jun 12, 2026
201dd3e
feat(release-tracks): add history and config tabs
clemiller Jun 15, 2026
2264cfb
refactor(release-tracks): simplify release track API types
clemiller Jun 17, 2026
ae4921f
fix(release-tracks): disable inactive config values
clemiller Jun 17, 2026
fa99252
Merge pull request #871 from center-for-threat-informed-defense/impro…
clemiller Jun 17, 2026
b1866a2
fix(release-tracks): show summary counts on release track cards
clemiller Jun 17, 2026
21d5a82
feat: add an all objects view
adpare Jun 18, 2026
deb5017
chore: code rearrangement
adpare Jun 18, 2026
3ae785c
Merge branch 'next' into beta
clemiller Jun 25, 2026
f5b67ca
Merge branch 'next' into beta
clemiller Jun 25, 2026
42308f0
Merge branch 'beta' into 847-address-todos
clemiller Jun 25, 2026
8fb8224
Merge pull request #873 from mitre-attack/all-objects-view
clemiller Jun 26, 2026
2bf030f
feat(release-tracks): show object details on release track object cards
clemiller Jun 26, 2026
c499d34
refactor(release-tracks): reuse all objects table for candidate selec…
clemiller Jun 26, 2026
371d142
refactor(stix-list): reorder all objects table columns
clemiller Jun 26, 2026
f961ed0
Merge pull request #885 from mitre-attack/786-bulk-candidate-selection
clemiller Jun 26, 2026
06d0e45
Merge pull request #884 from mitre-attack/847-address-todos
clemiller Jul 7, 2026
8b94c3b
chore(deps): update attack data model version
clemiller Jul 8, 2026
a3a5f3d
feat(release-tracks): support virtual track composition configuration
clemiller Jul 8, 2026
390a25a
Merge pull request #888 from mitre-attack/784-create-release-track-mo…
clemiller Jul 8, 2026
00af7e1
fix(release-tracks): resolve object card view routes
clemiller Jul 9, 2026
af8d2e2
feat: add release track membership view to STIX objects
avwchapman Jul 20, 2026
2d6c268
Merge branch 'beta' into 781-release-track-membership-object
avwchapman Jul 20, 2026
cdb73e3
fix: refine release track membership statuses and releases
avwchapman Jul 20, 2026
39e6478
fix: show release track status transition dates
avwchapman Jul 20, 2026
f4c9a7f
chore: complete merge
adpare Jul 22, 2026
529c9c9
feat(release-tracks): manage workflow status across release tracks
clemiller Jul 22, 2026
dfc5f2b
chore: formatting
clemiller Jul 22, 2026
8045179
feat(release-tracks): add release track status updates to save dialog
clemiller Jul 22, 2026
4d1f74f
fix(workflow-status): disable workflow status options below the curre…
clemiller Jul 22, 2026
4939463
style(save-dialog): align release track status reset display
clemiller Jul 22, 2026
2c55ad4
fix(objects): refresh release track statuses after save
clemiller Jul 23, 2026
e7c8a9c
fix(stix-list): remove workflow status column from object lists
clemiller Jul 23, 2026
e146814
Merge pull request #894 from mitre-attack/889-update-release-track-en…
clemiller Jul 23, 2026
1d351f6
feat(release-tracks): delete release track workflow
clemiller Jul 23, 2026
2852051
Merge pull request #895 from mitre-attack/890-delete-release-track
clemiller Jul 23, 2026
9f67ebd
feat: add dashboard for managing ADM validation bypass rules
seansica Jul 23, 2026
3a5588e
fix(notes): move notes back to sidebar
clemiller Jul 23, 2026
c7b7219
fix(layout): scope sidebar to page content
clemiller Jul 23, 2026
19927f0
fix: resolve some unit test failures
seansica Jul 23, 2026
6d8fa2c
fix(release-tracks): improve release track card theming and layout
clemiller Jul 23, 2026
6ca2d88
style(release-tracks): soften composition row dividers
clemiller Jul 23, 2026
343a386
fix(stix-list): handle objects without domains
clemiller Jul 23, 2026
8720770
Merge pull request #896 from mitre-attack/various-release-track-fixes
clemiller Jul 23, 2026
74426df
fix(release-tracks): avoid overwriting object status during track upd…
clemiller Jul 23, 2026
b2e5e6d
feat: display new relationships added
adpare Jul 24, 2026
861ad97
chore: complete merge with beta
adpare Jul 26, 2026
3f8ccf8
fix: update identation and update color of modified relationships
adpare Jul 26, 2026
d940476
chore: update path of release snapshot
adpare Jul 26, 2026
399044e
feat(release-tracks): support snapshot history endpoints
clemiller Jul 27, 2026
e1dadbc
style: update save dialog labels
clemiller Jul 27, 2026
856a2bf
fix(release-tracks): resolve object card view routes
clemiller Jul 9, 2026
cb4cb62
feat(release-tracks): manage workflow status across release tracks
clemiller Jul 22, 2026
0f722b8
chore: formatting
clemiller Jul 22, 2026
52d3183
feat(release-tracks): add release track status updates to save dialog
clemiller Jul 22, 2026
868a670
fix(workflow-status): disable workflow status options below the curre…
clemiller Jul 22, 2026
66422db
style(save-dialog): align release track status reset display
clemiller Jul 22, 2026
8eef975
fix(objects): refresh release track statuses after save
clemiller Jul 23, 2026
6faad83
fix(stix-list): remove workflow status column from object lists
clemiller Jul 23, 2026
e2031a2
feat(release-tracks): delete release track workflow
clemiller Jul 23, 2026
149325e
fix(membership): address release track membership review feedback
avwchapman Jul 27, 2026
4e62dd6
Merge branch 'beta' into 781-release-track-membership-object
avwchapman Jul 27, 2026
56443d2
chore: merge beta updates into membership branch
avwchapman Jul 27, 2026
ebbae4b
feat(release-tracks): add release preview and version tagging
avwchapman Jul 28, 2026
3f1b74a
style: apply prettier formatting
avwchapman Jul 28, 2026
8869aa5
fix: update object tier accurately when relationships are editted/added
adpare Jul 28, 2026
df60b36
chore: update identation
adpare Jul 28, 2026
1114297
chore: update identation
adpare Jul 28, 2026
14b937f
fix: disable diff when object exists in candidates and staged
adpare Jul 28, 2026
66310af
fix(release-tracks): use snapshot endpoints for track details
clemiller Jul 28, 2026
d7d7510
Merge pull request #904 from mitre-attack/update-release-track-endpoints
clemiller Jul 28, 2026
e57be29
Merge branch 'beta' into 781-release-track-membership-object
clemiller Jul 28, 2026
398396b
chore: package updates
clemiller Jul 28, 2026
c58d468
chore: formatting
clemiller Jul 28, 2026
aca11cc
Merge pull request #891 from mitre-attack/781-release-track-membershi…
clemiller Jul 28, 2026
74b7906
Merge branch 'beta' into 790-release-preview-modal
avwchapman Jul 28, 2026
5164735
test(release-tracks): improve release preview coverage
avwchapman Jul 28, 2026
235e4e0
chore: complete merge with beta
adpare Jul 29, 2026
3e16541
chore: code cleanup
adpare Jul 29, 2026
8f08cc4
feat: add modified-in-place objects to the release track
adpare Jul 29, 2026
b91afa4
chore: update identation
adpare Jul 29, 2026
2273c3c
fix(release-tracks): align preview flow with updated API
avwchapman Jul 29, 2026
a5c8284
fix(release-tracks): support multiple drafts and fix release previews
avwchapman Jul 30, 2026
f0e1d83
fix(release-tracks): preserve latest revision selectors
seansica Jul 30, 2026
0c43d56
fix(release-tracks): update virtual endpoint paths
seansica Jul 30, 2026
78ca2d0
fix(release-tracks): create virtual drafts directly
seansica Jul 30, 2026
e817ede
fix(release-tracks): replace bump contract with releases
seansica Jul 30, 2026
9293635
fix(release-tracks): consume snapshot summary pages
seansica Jul 30, 2026
d135f24
fix(release-tracks): confirm destructive requests
seansica Jul 30, 2026
c95ee0b
fix(release-tracks): encode snapshot timestamps
seansica Jul 30, 2026
0ae900f
test(release-tracks): use explicit snapshot routes
seansica Jul 30, 2026
e2284b2
feat(release-tracks): support quarantine promotion
seansica Jul 30, 2026
d57bb72
fix(release-tracks): remove unsupported list filter
seansica Jul 30, 2026
709c625
style(release-tracks): format API contract changes
seansica Jul 30, 2026
6b79656
Merge branch 'beta' into 792-creating-and-tagging-snapshots
clemiller Jul 30, 2026
a982ebb
fix: disable editting/ adding relationships in diff mode
adpare Jul 30, 2026
b87d726
fix(release-tracks): notify users when release preview fails
avwchapman Jul 30, 2026
1458dc4
fix(release-tracks): default initial preview version to 0.1
avwchapman Jul 30, 2026
5a28a35
fix: ensure accurtae candidate version is pulled
adpare Jul 30, 2026
449a9c8
fix(release-tracks): remove mutable snapshot client methods
seansica Jul 30, 2026
9959301
Merge pull request #910 from mitre-attack/fix/release-tracks-api-cont…
seansica Jul 30, 2026
a825533
fix: ensure candidates are compared to members as well
adpare Jul 30, 2026
a26361a
chore: complete merge with beta
adpare Jul 30, 2026
dd4f4a5
chore: attempt to fix invalid date issue
adpare Jul 30, 2026
8de4d52
Merge branch 'fix-date' into release-diff-old
adpare Jul 30, 2026
a8bdf18
chore: remove duplicate declarations
adpare Jul 30, 2026
31f9ed2
fix: release track creation
adpare Jul 31, 2026
7e3b302
Merge branch 'beta' into release-diff-old
adpare Jul 31, 2026
2046569
fix(release-tracks): distinguish preview conflict messages
avwchapman Jul 31, 2026
871d48f
fix: diff view for manual track objects
adpare Jul 31, 2026
73cea1d
feat: add domain filter for virtual tracks
adpare Jul 31, 2026
b7fd234
fix: virtual track creation with new keys
adpare Jul 31, 2026
a5493a5
Merge pull request #913 from mitre-attack/domain-filter
clemiller Jul 31, 2026
e7f704f
Merge branch 'beta' into release-diff-old
clemiller Jul 31, 2026
7629fc0
chore: formatting
clemiller Jul 31, 2026
1df4796
fix: add relationships creation indication to objects going from stag…
adpare Jul 31, 2026
337be41
chore: update function to get release track tiers
adpare Jul 31, 2026
70eab46
chore: pull in latest changes
adpare Jul 31, 2026
edf780b
Merge branch 'beta' into 792-creating-and-tagging-snapshots
clemiller Jul 31, 2026
5e1c30a
chore: formatting
clemiller Jul 31, 2026
c61efb9
style(release-tracks): update snapshot history border styles
clemiller Jul 31, 2026
1386d6b
fix(release-tracks): submit selected candidate ids without version refs
clemiller Jul 31, 2026
5650d84
chore: formatting
clemiller Jul 31, 2026
93041b8
Merge pull request #905 from mitre-attack/release-diff-old
clemiller Jul 31, 2026
05fbbe4
Merge branch 'beta' into 790-release-preview-modal
clemiller Jul 31, 2026
8383204
chore: formatting
clemiller Jul 31, 2026
5f2fe1e
Merge pull request #903 from mitre-attack/790-release-preview-modal
clemiller Jul 31, 2026
733dc59
Merge branch 'beta' into 792-creating-and-tagging-snapshots
clemiller Jul 31, 2026
db95dc0
feat(release-tracks): support virtual draft snapshot creation
clemiller Jul 31, 2026
58dbb6f
style(release-tracks): update preview and tag label in snapshot history
clemiller Jul 31, 2026
b457b86
feat(release-tracks): snapshot history exports
clemiller Jul 31, 2026
6797804
fix(release-tracks): unify chip styling across release track views
clemiller Jul 31, 2026
d99551a
Merge pull request #917 from mitre-attack/792-creating-and-tagging-sn…
clemiller Jul 31, 2026
9314bf5
fix(stix): preserve canonical domains in editors
seansica Aug 3, 2026
b287dd9
fix(campaigns): preserve temporal citation references
seansica Aug 3, 2026
fee2b22
feat(release-tracks): manage deterministic bundle caches
seansica Aug 4, 2026
115ad01
feat(release-tracks): expand snapshot export options
seansica Aug 4, 2026
487a372
feat(release-tracks): add snapshot note editing
seansica Aug 4, 2026
8721977
feat(release-tracks): tag snapshots with exact versions
seansica Aug 4, 2026
81b642f
fix(relationships): revise related objects on save
seansica Aug 4, 2026
3aa2e4a
feat(release-tracks): support STIX version selection for snapshot exp…
seansica Aug 4, 2026
23f235a
feat(release-tracks): display snapshot bundle hashes
seansica Aug 5, 2026
71998ab
Merge branch 'next' into beta
seansica Aug 6, 2026
1f6da46
fix: remove openHistory and openNotes sections from identityViewCompo…
adpare Aug 6, 2026
2164790
ci: trigger pipeline
seansica Aug 7, 2026
faa2d92
feat(shell): display component build versions
seansica Aug 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@ COPY . .

ARG TARGETOS
ARG TARGETARCH
ARG VERSION=dev
ARG BUILDTIME=unknown
ARG REVISION=unknown

# Make the OCI build metadata available while Angular's static assets are built.
ENV APP_VERSION=${VERSION} \
GIT_COMMIT=${REVISION} \
BUILD_DATE=${BUILDTIME}

# Install dependencies
RUN npm install --cpu ${TARGETARCH} --os ${TARGETOS}
Expand Down Expand Up @@ -51,4 +59,4 @@ COPY --from=build /workspace/dist/app/browser /usr/share/nginx/html
EXPOSE 80 443

# Command to run NGINX in foreground
CMD ["nginx", "-g", "daemon off;"]
CMD ["nginx", "-g", "daemon off;"]
2 changes: 1 addition & 1 deletion angular.json
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
{
"type": "initial",
"maximumWarning": "3mb",
"maximumError": "5mb"
"maximumError": "6mb"
},
{
"type": "anyComponentStyle",
Expand Down
19 changes: 18 additions & 1 deletion docs/local-dev.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,23 @@ ng serve

Open your browser and navigate to `http://localhost:4200`

### Build information

`ng serve` uses `src/assets/build-info.json`, which contains development
fallbacks. The repository's `npm run build` and `npm run build-prod` commands
generate `dist/app/browser/assets/build-info.json` after Angular finishes.
Provide release metadata through the same variables used by the Docker build:

```bash
APP_VERSION=4.20.0-beta.23 \
GIT_COMMIT=c2c017c146fae040caba559333b35536bfbd1189 \
BUILD_DATE=2026-08-05T15:13:49.915Z \
npm run build-prod
```

If variables are omitted, the generated asset uses the package version and
reports its commit and build date as `unknown`.


## Note: Recommended setup using Visual Studio Code Workspaces

Expand Down Expand Up @@ -140,4 +157,4 @@ Example VS Code Workspace configuration:
]
}
}
```
```
21 changes: 20 additions & 1 deletion docs/usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@

The ATT&CK Workbench is a tool intended to allow the ATT&CK community to *explore*, *create*, *annotate* and *share* extensions of ATT&CK.

## Build Information

The bottom of the primary navigation shows the release versions of the
Workbench frontend and the connected REST API. Hover over either version to
see the source commit and build date. If the REST API cannot be reached, its
version is shown as `unknown` without preventing the rest of the application
from loading.

## Exploring ATT&CK

When first instantiated, the ATT&CK Workbench will not include any data. You can use the application to build a custom dataset, or import data from a data provider such as MITRE using the collections browser.
Expand All @@ -18,6 +26,14 @@ Objects may exist in multiple collections simultaneously, and objects can exist

You can read more about the technical specifications for a collection, such as the STIX representation of a collection object, in our [collections](/docs/collections.md) document. MITRE's ATT&CK collections and collection index can be found on our [attack-stix-data GitHub repository](https://github.com/mitre-attack/attack-stix-data).

#### Releasing a Release-Track Snapshot

The release preview offers minor and major relative tags as well as an exact `MAJOR.MINOR` version. Relative tags are calculated from the tagged snapshot immediately before the selected draft. When releasing an older draft, the exact version must also remain below the next tagged snapshot; the dialog shows these exclusive bounds. Optional release notes are stored on that snapshot and become the `x-mitre-collection` description in exported STIX bundles.

The release-track page can export the latest snapshot or a selected historical snapshot as a STIX 2.0 bundle, a STIX 2.1 bundle, or Workbench JSON. Historical snapshot exports can also copy a concise summary. Tagged snapshots with a bundle cache use that pinned member graph for deterministic member-only exports in either STIX version.

Each cached snapshot card displays server-generated SHA-256 hashes for the exact UTF-8 JSON files produced by its STIX 2.0 and STIX 2.1 bundle downloads. The adjacent copy buttons copy a hash for external file-integrity verification. Snapshot notes are locked while the bundle is cached; delete the cache, edit the notes, and cache the bundle again to generate matching hashes.

#### Adding a Collection Index

Collection indexes can be added from the collections page. To add a collection index, specify the URL at which the index is found. The application will then provide a preview of the index for you to review before you save. You can also choose from the provided "recommended collection indexes" to quickly connect your Workbench instance to a data provider without having to find the URL yourself. The ATT&CK Workbench is pre-configured to recommend the MITRE ATT&CK collection index in the "add a collection index" interface.
Expand Down Expand Up @@ -226,6 +242,8 @@ When creating and/or editing an object, you can add multiple statements and sele

Any object in the knowledge base, except for marking definitions, can be edited, even those imported from collections. Clicking the "edit" button in the toolbar, or the "edit" link in an object list, will bring you to the edit interface for the object. While editing an object, relationships cannot be viewed or created since they are saved independently of the objects they connect.

Domain-bearing ATT&CK objects expose a Domain field that reads and writes the STIX `x_mitre_domains` list. This includes techniques, campaigns, mitigations, groups, software, analytics, assets, data components, data sources, detection strategies, matrices, and tactics. When an existing object is revised, its domains are retained unless the editor explicitly changes them.

#### Editing Matrices

Matrices share the typical fields on objects, including a description supporting markdown, LinkByIds, and citations. Unlike other object types, their IDs serve as identifier for their domain:
Expand Down Expand Up @@ -425,6 +443,7 @@ The source and target objects can be changed after the relationship has been cre

Relationships also have a description to provide additional context or to hold citations of relevant reporting. Like all descriptions, those on relationships support citations, LinkByIds, and markdown formatting. Relationships between sub-techniques and techniques however are purely structural and do not support descriptions.

Saving a relationship creates a new relationship revision and returns its connected source and target objects to the *work in progress* workflow state through new SDO revisions. Previously published or snapshot-pinned SDO revisions remain unchanged.

### Revoking and Deprecating Objects

Expand Down Expand Up @@ -527,4 +546,4 @@ Within the page showing the list of teams, there is an option to create a new te

### Editing a team

When viewing a team, click the edit icon in the toolbar to edit it. You can edit the name, description, or user list of a team at any time.
When viewing a team, click the edit icon in the toolbar to edit it. You can edit the name, description, or user list of a team at any time.
Loading
Loading