All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Adds Library Source Material (discussion, #118).
- Adds anatomical site as any node that inherits from "anatomical entity" in the "simple" Uberon ontology (discussion, #121).
v1.0.0 — 04-30-2024
- Adds both local and global gateway definitions to subjects and samples. With this change, subjects, samples, and files now have the same top-level keys in their responses (discussion, #95).
- Adds Library Source Material (link to discussion, #118)
- Adds Specimen Molecular Analyte Type (link to discussion, #123, #122)
- Adds Library Selection Method (discussion, #125)
- Removes namespace-partitioned count by results (discussion, #97).
- Updates diagnosis to support multiple values (#99).
- Includes diagnosis in sample metadata field descriptions.
v1.0.0-rc.1 — 04-26-2024
- Adds an endpoint to show an individual file (link to card, #82).
- Adds an endpoint to partition files by metadata elements and namespace (link to card, #82).
- Adds support for reporting the metadata fields for file at
/metadata/file/fields
(link to card, #82). - Nine new metadata elements were added
(#89 and
#91).
- The library strategy for the sample (CDE 6273393 v1.00, #48)
- The preservation method for the sample's biospecimen (CDE 8028962 v2.00, #64)
- Disease at diagnosis (unaligned, #52).
- A short title for a study (CDE 11459812 v1.00, #69).
- A funding id for a study (CDE 14528051 v1.00, #66).
- An identifier for a study (CDE 12960571 v1.00, #70).
- A name for a study (CDE 11459810 v1.00, #68).
- Institution (CDE 12662779 v1.00, #67).
- dbGaP phs Accession (CDE 11524544 v1.00, #65).
- Revises the data model for files to more closely match subjects and samples by
adding a
ccdi_server::responses::File
object (#82). - Ensures that all primary entities must explicitly exclude missing metadata
objects for primary entities (subject, sample, and file) by assigning it a
value of
null
rather than simply omitting the key (#84). - Revises the way missing or
null
results are displayed in group by endpoints. In particular, there is now a top-levelmissing
key in those responses rather than using sentinel values to indicate missing data (#83). - Clarifies the language regarding the meaning of
null
within the API including guidance on when to returnnull
and how to interpretnull
results (particularly when combined with enumerated values of CDEs that appear to overlap with this concept) (#81).
- Adds filtering to the
/file
endpoint (#88).
v0.7.0 — 03-25-2024
- Five new metadata elements were added for files (#63).
- A
Namespace
now represents a top-level governance grouping of entities within the CCDI Federation API. See the new "Organizations", "Namespaces", and "Assigning Organizations and Namespaces" sections in the Swagger specification to learn about how your design might need to change to account for these new definitions (#75). - Introduces
Organization
as a supporting entity with the corresponding/organization
and/organization/{name}
endpoints (#75). - For all primary entities, an
Identifier
is now represented as both aNamespace
identifier and aName
of the entity. - Identifiers, when referenced from within metadata blocks (but not when
specified as the top-level identifiers for subjects/samples/files) are now
known as referenced identifiers. Their body type has changed to include
linked::Identifier
s andunlinked::Identifier
s, which are wrapped in anidentifier::Referenced
enum (#75). - The
identifiers
metadata field for aSubject
was changed from an owned metadata field to an unowned metadata field (#75). - A new
identifiers
metadata field was added toSample
to support adding other known identifiers at the sample level (#75). - For both samples and subjects, there is a new
partition
query parameter that needs to be supported for the/{entity}/by/{field}/count
endpoint (#75).- The only current valid value for the
partition
query parameter at the moment isnamespace
, though this may be expanded in the future.
- The only current valid value for the
- Pagination is now required by default for primary entity root endpoints
(
/subject
,/sample
, and/file
) (#59). - HTTPS served on port 443 is now required (#60).
- Updates the name of the API to be the "CCDI Data Federation API".
- The pagination via
Link
headers was fixed (Thanks @e-t-k! #61).
v0.6.1 — 01-16-2024
- Corrects two issues with the v0.6.0 release
(#51).
- Corrects the description of the sample metadata
tumor_tissue_morphology
to be specified as a struct. Additionally, add theicd_o_3
code as a named struct field so that it will be named in the wiki. - Adds the
age_at_vital_status
subject metadata toget_field_descriptions()
so that it will be included in the wiki page generation.
- Corrects the description of the sample metadata
v0.6.0 — 01-16-2024
- Adds the files and gateways API (#31).
- Adds the
check
command for checking conformance with the API specification (c092b06
). - Adds five new harmonized metadata elements (#49).
v0.5.0 — 11-25-2023
- Formalizes the
Namespace
entity and adds/info
endpoint (#27)./info
: Gets information about the server./namespace
: Lists namespaces known by this server./namespace/{name}
: Gets the namespace matching the provided name (if it exists).
- Adds a
InvalidRoute
error to give feedback in the response body when a route is not available (#28). - Adds an
UnshareableData
error to explain why data is not shareable (#29).
v0.4.0 — 11-17-2023
- Adds filtering via query parameters for
/subject
and/sample
(#26). - Adds a reference from samples back to subjects (#25).
- Adds pagination to
/subject
and/sample
(#24). - New server endpoints.
- Adds Kids First Data Resource Center endpoint (#30).
- Applies the
Refactory
->Refractory
typo present in the CDE 12217251 v1.00 (#23).
v0.3.0 — 11-02-2023
- Adds identifier with namespace to sample.
/sample/{name}
now updated to/sample/{namespace}/{name}
.
v0.2.0 — 11-02-2023
- New endpoints for
/sample
./sample
: Gets the samples known by this server./sample/{name}
: Gets the sample matching the provided name (if the sample exists)./sample/by/{field}/count
: Groups the samples by the specified metadata field and returns counts.
- Adds character restrictions to harmonized and unharmonized fields (#19).
- Adds unharmonized metadata fields.
- Adds linting with
spectral
.
- Removes
null
-based metadata fields. - Supports full set of subject fields in group by count.
- Unharmonized keys can be any json string.
- Versions are now workspace-wide and in sync with API version
- Fixed swapping of server descriptions (#18).
v0.1.0 — 10-15-2023
- New endpoints for subjects.
/subject
: Gets the subjects known by this server./subject/{namespace}/{name}
: Gets the subject matching the provided id (if it exists)./subject/by/{field}/count
: Groups the subjects by the specified metadata field and returns counts.
- New endpoints for metadata.
/metadata/fields/subject
: Gets the metadata fields for subjects that are supported by this server.
- New server endpoints.
- Rust tooling was added to the
packages
directory (#14).