Skip to content

Releases: tmtsoftware/icd

idbs-3.3.0

07 Sep 11:20

Choose a tag to compare

  • Changed the way uploaded API versions are handled. Instead of "*" (working version), now "uploaded" is the version name.
  • By default, the latest API versions are selected in the icd web app (previously the working version or last published version was shown).
  • Added optional diagnostic mode information for command-model.conf files and for events. See the documentation for details.

idbs-3.2.0

16 Aug 20:17

Choose a tag to compare

  • Added HTTP services (defined in service-model.conf and OpenApi files) to the visualization graph
  • Added HTTP services to the "Missing Items" reports
  • Removed elements from "Missing Items" report and relationship graph that show published events with no subscribers, commands with no senders and services with no users
  • Fixed versioning for OpenApi data stored in the icd database (previously the latest version was always used)
    Note: run icd-git --ingest or icd-git --ingestAll to reload and fix an existing icd database.
  • Put context/interface diagram and missing item report in appendix of generated ICD SDBs (if the graph is not empty, if there are missing items)
  • Fixed JSON schema for service-model.conf to support both "required" and "provided" services in the same file
  • Updated dependencies and moved to Java-21 and Scala3
  • Changed web app to only ingest latest published APIs and ICDs and load older versions on demand (You can still use icd-git --ingestAll to preload the icd database)
  • Removed icd-git --ingestMissing option (Use --ingest, --ingestLatest or --ingestAll).
  • In the icd web app, the working version is now the most recently uploaded version of an API, or the most recently published one.
  • Changed web app sidebar to sort components by subsystem, component type and then alphabetically and added colored icons based on component type.
  • The sidebar with is now set to fit the contents by default (but can be resized)
  • Added a new modelVersion 4.0 (specified in component-model.conf and subsystem-model.conf): Removed args from command-model and attributes from event-model: Usage of parameters is now required.
  • Added check that requiredArgs for commands are defined.

idbs-3.1.0

22 Jul 15:38

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

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

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

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

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

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

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

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