Skip to content

Releases: tmtsoftware/icd

idbs-3.1.0

22 Jul 15:38
Compare
Choose a tag to compare
  • Updated dependencies, switched from akka to pekko.
  • Replaced dependency on sjsonnet Java lib with a use of "jsonnet" command, which must be installed if the feature is used.
  • UI Changes in icd web app: Moved buttons that depend on the selected subsystems or ICDs to the Select tab (Buttons are only enabled when applicable).
  • Added Markdown/Paradox based documentation under ./docs directory (to replace Docushare PDF version).
  • For ICDs, the summary table now displays the paths/routes that are used for HTTP services.
  • For ICDs between components in the same subsystem, the version of the API is now displayed instead of "unpublished".
  • Fixes for online documentation.
  • Improved readability of service apis in SDB PDFs.
  • Fixes for PDF display of HTML markup in OpenApi based service APIs.
  • Fixed issue when, after renaming a component, the old name still showed up in the generated APIs.
  • In icd web app: Removed display of components in the sidebar that are not in the ICD and added the subsystem names before the components.
  • Changed ICD PDFs to include more client API information, such as a summary of subscribed events or sent commands.
  • See the JIRA release page for details on the changes.

idbs-3.0.0

04 Feb 17:39
Compare
Choose a tag to compare
  • Added "subsystem" constant in generated source files with subsystem name and version: For example: subsystem = "APS-1.4" (See Generate menu item in icd web app).
  • Added file MacOs-Max-Files-Limit.md describing how to increase the max-files limit on recent MacOS versions (This is required in order to run MongoDB when running the ICD web server locally, since the default setting is too low).
  • Include FITS keyword table in PDFs for APIs (was previously only displayed in web app)
  • Added a new toolbar item: "Missing" that generates a PDF containing a list of subscribed events with no publisher, sent commands with no receiver, and referenced components that are not defined. The table refers to the selected subsystem(s) or all subsystems, if none were selected (in the Select tab).
  • Added ability to specify FITS keywords in publish model event parameter descriptions. The keywords (and optional channels) must already be in the FITS dictionary.
  • Added a command line option to icd-fits to generate a FITS dictionary JSON file by merging the one currently in the icd database with the FITS keywords defined for the event parameters in specified subsystems. This can be used to update the FITS dictionary to match the entries in the model files for a given subsystem (or all subsystems).
  • Added "Alarms" toolbar item, to generate a PDF listing the alarms for the selected subsystem/component or all subsystems.
  • Changed the web and PDF displays to include information about alarms in all ICDs with ESW.
  • For graphs, added the option to display only subsystems (instead of the subsystem components). Added a new command line option for this to the icd-viz app and a new checkbox in the web app's graph options popup.
  • For graphs: The graph generated for ICDs (two subsystems/components) now only includes connections between the two (previously connections to other subsystems were also included).
  • Added new optional "category" field for events with possible values: [DEMAND, CONTROL, EVENT, STATUS] (See "Event Categories" at end of README.md)
  • Replaced general usage of "TMT" with "TIO" (TMT International Observatory) in web app and docs.
  • Added validation check for parameters that the "defaultValue" is valid for the declared type
  • Set a fixed with for inline OpenApi display frames
  • Added code to revert database if post-ingest validation errors are found.

idbs-2.2.3

05 Mar 19:49
Compare
Choose a tag to compare
  • Changed the format of the FITS-Tags.conf file to allow one tag to inherit keywords from another. For example, the IRIS and MODHIS tags now "inherit" the keywords from the "DL" (diffraction-limited) tag, so these are automatically displayed when the IRIS or MODHIS tags are selected in the web app.

idbs-2.2.2

18 Nov 18:29
Compare
Choose a tag to compare
  • Fixed scrollbar display in web app (was too thin or not visible)
  • Fixed issue generating PDFs with the option selected: "Include only the details that are expanded in the HTML view"
  • Display subscriber info in summary table if option "Include client API information" is selected, but not for ICDs
  • Updated dependencies, code cleanup
  • Added additional validation checks for duplicate or incorrect component, event or command names when manually
    ingesting subsystem model files

idbs-2.2.1

10 Nov 21:45
Compare
Choose a tag to compare
  • Fixed an issue where published images were not included in the generated documentation if no events were published.
  • Added a validation check for conflicting component names when manually ingesting or uploading model files into the icd
    database. Also added a check for cases found in already published APIs.
  • Minor performance improvements
  • Added details table for published images to generated PDFs and changed the format used for the web version
  • Added --documentNumber option to icd-db (and text field to web app's PDF options popup). If given, the text is
    displayed under the subtitle in the generated PDF

idbs-2.2.0

31 Oct 21:14
Compare
Choose a tag to compare
  • Added options to icd-db command line app to generate code containing the event, command and parameter keys. (currently Scala, Java, Typescript and Python are supported)
  • Added a new modelVersion "3.0", which defines the allowed parameter "units" matching the ones defined in the CSW framework and adds the parameter types "taiTime" and "utcTime" (same as taiDate and utcDate, which are still allowed: taiTime and utcTime should be preferred, matching the CSW names).
  • Added jsonnet support. Model files with the '.jsonnet' suffix are processed with jsonnet before storing in the icd database. This can be used to avoid repetition in the model files. See this example.
  • Changed the publish model to only allow predefined Observe Events
  • Added support for documenting TMT CSW components that are HTTP web services using OpenAPI.
  • Added a new, optional icd model file: service-model.conf, that contains information about the HTTP services that a component provides or requires. For each service provided, the model file also contains the name of the OpenAPI JSON file that describes the service.
  • Updated dependencies
  • Replaced deprecated ScalaJS Ajax usage with recommended dom fetch API
  • Removed RaDec type from JSON schema for parameters in v2.0 and later model files
  • Removed support for "struct" parameter type, since it was removed from CSW
  • Fixed display of "default" parameter values
  • Improved "busy" cursor display
  • Removed support for uploading a zip file containing the icd model files, since modern browsers now all support uploading a directory
  • Removed dependency on "less" and converted/renamed icd.less to icd.css
  • Updated list of allowed CSW Units
  • Updated all dependencies to the latest versions, including Bootstrap-5.2.0 and support for MongoDB-6.0
  • Added support for documenting published and subscribed images (TMT VIZ)
  • Added support for a FITS keyword dictionary, and the icd-fits command line app, FITS Dictionary tab (FITS Keywords will be automatically imported once the DMS subsystem model files have been published. For now, you can use icd-fits -i examples/3.0/FITS-Dictionary.json --ingestTags examples/3.0/FITS-Tags.conf) or manually upload/ingest the DMS-Model-Files GitHub repo in the icd web app.
  • Updated to Play-Framework-2.9.0-M2, which means icd can now be compiled and run with Java-17 (as well as Java-11).
  • Fixed issues in the handling of older subsystem versions when generating graphs
  • Fixed issues dealing with "refs"
  • Improved the title and description display for inner-subsystem ICDs (changed to avoid duplicating information, use component description where applicable).

idbs-2.1.2

25 May 08:43
Compare
Choose a tag to compare

Added support for optional ${subsystem}-icd-model.conf files (for example: IRIS-icd-model.conf, TCS-icd-model.conf) that add information about the ICD between ${subsystem} and the subsystem being described.
See TEST2-icd-model.conf or TEST-icd-model.conf for an example, or for more realistic examples: here and here

idbs-2.1.1

01 May 21:32
Compare
Choose a tag to compare

Changed

  • Fixed a minor issue that could occur in the web app when the uploaded model file versions in subsystem-model.conf and component-model.conf were different.

  • Changed size calculations for archived events: Use 12 hours/day (was 24), list hourly data sizes, changed event overheads to match CSW versions.

  • Added "Command: " to command description heading to match event headings.

  • Fixed an issue that could cause a newly published ICD version to not be automatically ingested into the local icd database in certain circumstances

idbs-2.1.0

12 Oct 20:21
Compare
Choose a tag to compare

Added

  • Added a new component model file: alarm-model.conf, which replaces the "alarms" section in publish-model.conf
    (The old version is still supported for backward compatibility).
    See DEOPSICDDB-98.

  • Added support for specifying an optional minLength and maxLength for string parameter types (to help in calculating the archived size for events)

Changed

  • Changed the "attributes" keyword for events (in publish-model.conf) and the "args" keyword for commands
    (in command-model.conf) to "parameters", to match the CSW terms.
    The previous names are still accepted for backward compatibility.
    Also renamed the json-schema files used internally for validation.
    See DEOPSICDDB-113.
    The generated APIs and ICDs now also display "Parameters" instead of "Attributes", etc.

idbs-2.0.0

09 Sep 09:45
Compare
Choose a tag to compare

Added

  • Added "master" as an API version that is updated automatically from GitHub on startup or refresh of the web app.

  • Added support for LaTeX math formulas in description texts, delimited by $`...`$ for inline or ```math...``` for a block.
    See examples/2.0/TEST/envCtrl/publish-model.conf and
    examples/2.0/TEST/envCtrl/command-model.conf for examples.
    The LaTeX string is converted to an image and then inserted in the HTML or PDF.

  • Added support for UML (and Graphviz/Dot) markup in description texts,
    based on PlantUML, delimited by ```uml...```.
    See examples/2.0/TEST/envCtrl/component-model.conf.
    Note: The Graphviz apps needs to be installed on the server (or local machine, for the command line) in order to use this feature.

  • Added icd-viz command line app, based on Graphviz/Dot and Ed Chapin's icdRelationships.py,
    that generates a graph of component relationships.

  • Added a "Graph" toolbar item to the icd web app that displays a graph of relationships of the selected subsystems or components.

  • Added icd-db command line option "--clientApi" and a checkbox in the web app to include subscribed events and sent commands in an API document (the default was changed to only include published events or alarms and received commands).

  • Added new option to icd-git command: --ingestMissing: Ingests any APIs or ICDs that were published, but are not yet in the local database, plus any master branch versions.

  • Added "ref" keyword for events, commands, attributes to enable reuse of all or part of another item in the model files.
    See "Reusing Event, Command and Attribute Definitions" at the end of README.md for more details.

Changed

  • Changed API layout to include only published events or alarms and received commands by default (with option to include subscribed events and sent commands as well, like before).

  • The checkboxes in the web app select dialog are only enabled when a single subsystem is selected (since they only apply to APIs).

  • Changed the JSON schema for attributes to allow "inf" as the value for "maximum" or "exclusiveMaximum" and "-inf" as the value for "minimum" or "exclusiveMinimum".

  • Changed the JSON schema for attributes to include the "allowNaN" keyword. Set to true if NaN values are allowed. Default value is false.