Our first official release! Here are some of the highlights:
- The schema classes now support all of the NIST-1500-100 specification.
- Implemented a
PUT /admin/load_election_dataendpoint that you can call with the contents of jetsons.json as the request body, which will cause all of the data in that payload to be loaded into memory, allowing subsequent API calls to query and/or modify it. For example, execute the following command in the same directory that contains thejetsons.jsonfile:curl --header "Content-Type:application/json" --header "Accept: application/json" --request PUT --data @jetsons.json http://localhost:8080/admin/load_election_data - Implemented
poetrypackage management, included the build-system fix topyproject.toml. Poetry configuration tested successfully on Mac, Windows, and Linux. - Entities that have CRUD support in the API are: candidate, contest, election, office, party, person, and reporting_unit. Support for ballot_style and header is not yet present (schema objects are defined but routes are not).
- The
@idattribute can be specified in the input, but if it’s not present, it will be generated for those entities that have that attribute defined in the schema. This is what other entities point to when there is an object reference (ObjectIdRef in the schema class definitions). - In addition to
@id, any entity that has theexternal_identifierattribute (which is a list of ExternalIdentifier objects) can be identified in API paths by any of those external identifiers. For example, an election (which does not have an@id) can be created with an external identifier (likegc-special-2022in thejetsons.jsontest data) that can then be used in subsequent API calls, likeGET /elections/gc-special-2022/contests