Releases: wot-oss/tmc
Releases · wot-oss/tmc
v0.1.4
Added
- REST API:
/reposreturns directory name, when serving a catalog with--directoryflag import: added flag--with-attachmentsto import the attachments along with TMs- REST API: added reference to RFC 7807 and code key explanation for the error response
- Docs: explain sanitization rules for
manufacturer,author, andmpn
Fixed
- avoid escaping special characters when marshaling json
v0.1.3
Added
copy: added flag--ignore-existingto ignore TMs and attachments that have conflicts with existing ones instead of returning an error code- added possibility to import file attachments to TMs and TM names
export: added flag to export attachments together with TMs- added setting/storing/detecting of attachment media types
check: added.tmc/.tmcignorefile to explicitly exclude files from being validated bycheck- added HTTP Basic auth to tmc and file repos
repo add,repo config set: added flag to pass repo config json as string- added possibility to define configuration parameters of repositories by referencing environment variables
- added flag to change commands' output format to JSON
list,copy,export: added filtering by protocols supported by TMs- added
create-sicommand to initially create a bleve search index for repositories - added
searchcommand to search for TMs by a text search query using bleve syntax - added a
s3(AWS S3) repository type - added a check for directory or repo before serving
- added importing attachments in a directory of TMs when importing TMs
Changed
- return error on attachment import when it already exists and add a flag to override
check: removed subcommands ofcheckcommand, unifying both into the parent commandrepo: reorganized commands that change repo config: renamed/createdconfig auth,config description, andconfig headerscommandslist,copy,export: removed text search query parameter- removed 'search' parameter from '/authors', '/manufacturers', and '/mpns' API endpoints
- '/inventory': make 'search' parameter use bleve query syntax and make it mutually exclusive with filter parameters
Fixed
- return "application/tm+json" as MIME type when fetching TMs via API
v0.1.2
Removed
- Dockerfile: removed creation of a named catalog in the docker image
v0.1.1
Added
import: added flag--ignore-existingto ignore TMs that have conflicts with existing TMs instead of returning an error code
v0.1.0
Added
- REST API: added query parameter
forceto POST endpoint/thing-modelsto enforce pushing TMs with same TM name, semantic version and digest - REST API: added query parameter
optPathto POST endpoint/thing-modelsto append optional path parts to the target path (and id) - added command
copyto copy TMs between repositories - REST API: added GET endpoint
/reposto list available repositories repo: added flag for setting a repository description when adding/changing repo config- REST API: added source repository name to inventory responses
Changed
push: renamed "push" to "import"pull: renamed "pull" to "export"push: always reject pushing TMs with same TM name, semantic version and digest by default, but can be enforced by flag--forcepush: shows a warning if there is a timestamp collision (retrying after a second has been removed)list, pull, versions: return exit code 1 if at least one repo returns an errorcheck index: do not return error if repo does not contain any TM's and index
Fixed
import: restore the printout of error to stdout when import was not successful
v0.0.0-alpha.7
Added
- Added verb
checkwith sub-commandsindexandresources check index: validates the index wrt stored Thing Modelscheck resources: validates stored Thing Models (path, name, syntax etc.)- Put a limit on importable TM name length at 255 characters
Changed
- Removed the concept of official TMs
- Force all TM ids and key fields in imported TMs to be sanitized and lower case
v0.0.0-alpha.6
Changed
- Renamed the go module to "github.com/wot-oss/tmc"
- Renamed command
remotetorepo - Renamed command
update-toctoindex - Tab-completions now only complete a path segment instead of the full name to resemble shell completion in a file system
- Removed mockery dependency from final binary
v0.0.0-alpha.5
Added
- Implemented REST API authentication with JWT tokens and JWKS validation
- Implemented
versioncommand to show the version of the tm-catalog-cli - Implemented autocompletion for most flags and arguments for the shell autocompletion script
- Added an optional flag to fetch to restore original external id to the fetched TM
Changed
- Request results from multiple remotes concurrently instead of sequentially
Fixed
- handle timestamp collisions on push by retrying after one second, forcing generation of new id, or reporting the error if all else fails
- Display errors when accessing remotes for list/verions instead of silently ignoring them
v0.0.0-alpha.4
Added
- REST API: added
meta.page.elementsto inventory response, reflecting number of entries in current result page
Changed
- REST API: renamed inventory endpoint
/versionsto/.versions - REST API: removed
meta.createdfrom inventory response - Removed '--exact' flag to
listandpull listandpull: match given name pattern as a prefix by complete path partslist: changed output format: put NAME column first, renamed PATH column to MPNversions: changed output format: renamed PATH column to ID
v0.0.0-alpha.3
Added
- Building docker base image for releases to enable catalog hosting
- Implemented file locking to avoid data races (guaranteed for Linux/MacOSX)
- Implemented
pullcommand to fetch and save multiple thing models at once - Implemented setting CORS options for API
- Implemented fetching a TM by a [partial] semantic version also in REST API
- Print information about used config file in
help - Implemented a 'tmc' remote type, which uses our own REST API as the underlying TM storage
- Added 'filter.name' parameter to REST API '/inventory' listing
- Added '--exact' flag to
listandpull
Changed
create-toc: renamed toupdate-tocand allow for partial updateslist: allows now listing by name patternserve: separate configuration of the remote(s) to be served from the target remote for pushfetch:--outputnow accepts only a target folder to save TM to,--with-pathhas been removedlist, pull: removed filter flagfilter.externalID, search for externalID has now to be done by query search-s- REST API: removed filter parameter filter.externalID from
/inventory,/authors,/manufacturers,/mpns,
search for externalID has now to be done by query parametersearch - enable/disable logging is now done only by setting a loglevel
Fixed
- count only enabled remotes when checking if empty remote specification is unambiguous
- make fetch by partial semantic version match the most recent version beginning with given string
- (BREAKING!)
push: file hash calculation has been made more reliable and idempotent. Consequently, some files if pushed to TMC, may receive a new version hash, despite no change in contents fetch: fixed "Unable to parse TMID..." error when fetching an official TM by content hash- prevent
servefrom using one of remotes from config as push target when '-r' or '-d' are given - print the actual error if updating TOC after
pushfails