Difference between revisions of "FHIR Package Cache"
(Created page with "= Package Cache = Each system has a global package cache that stores the packages known to that system. This cache is shared between tools for efficiency. authors of tools th...") |
|||
Line 1: | Line 1: | ||
= Package Cache = | = Package Cache = | ||
− | Each system has a global package cache that stores the packages known to that system. This cache is shared between tools for efficiency. | + | Each system has a global package cache that stores the packages known to that system. This cache is shared between tools for efficiency. Authors of tools that work with FHIR packages are encouraged to follow this specification for the convenience of users. |
The package cache keeps the uncompressed content of all installed packages. Different versions of a package are installed side-by-side, and are individually resolvable. A Fhir package client should use the global package cache, but may keep a local cache in a working folder instead. The global package cache makes sure that each packages is installed only once on the computer | The package cache keeps the uncompressed content of all installed packages. Different versions of a package are installed side-by-side, and are individually resolvable. A Fhir package client should use the global package cache, but may keep a local cache in a working folder instead. The global package cache makes sure that each packages is installed only once on the computer | ||
Line 7: | Line 7: | ||
= Location = | = Location = | ||
− | The location differs per operating system | + | The location differs per operating system. |
Location of the global package cache: | Location of the global package cache: | ||
Line 41: | Line 41: | ||
= Folder contents = | = Folder contents = | ||
− | In each package folder there is | + | In each package folder there is one folder called "package", in which all the content of the package is found, including the package manifest. The contents of the folder are the unpacked version of the GZipped tarball and SHALL otherwise conform to the requirements for the [[FHIR NPM Package Spec]] |
= Recursion = | = Recursion = | ||
− | A package client must resolve package dependencies recursively, but | + | A package client must resolve package dependencies recursively, but keep the package cache flat. An installed package should itself not contain any dependencies. All packages are installed on the same level. |
Example: | Example: | ||
us.core.valuesets-2.0.0 | us.core.valuesets-2.0.0 |
Revision as of 05:56, 13 May 2018
Package Cache
Each system has a global package cache that stores the packages known to that system. This cache is shared between tools for efficiency. Authors of tools that work with FHIR packages are encouraged to follow this specification for the convenience of users.
The package cache keeps the uncompressed content of all installed packages. Different versions of a package are installed side-by-side, and are individually resolvable. A Fhir package client should use the global package cache, but may keep a local cache in a working folder instead. The global package cache makes sure that each packages is installed only once on the computer
Location
The location differs per operating system.
Location of the global package cache:
- Windows: c:\users\<username>\.fhir\packages - Linux: /~/.fhir/packages
For system services (daemons):
- Windows: c:\ProgramData\.fhir\packages - Linux: /var/lib/.fhir/packages
The package cache root folder contains a folder per package where the folder name is the package name, a dash and the package version.
hl7.fhir.use.core-0.1.1
In addition, the package cache root folder contains a file "packages.ini".
packages.ini
The packages.ini file contains the following content:
[cache] version=1
[urls] packageid=canonical
details:
- cache: version = 1 - indicates that the contents of the package cache conform to this specification. Applications using the package cache SHALL check this value and shall refuse to use the cache if the value is != 1
- urls: a list of mappings between package ids and canonical URLs - shared between applications to save a user resolving the same canonical URL repeatedly
Folder contents
In each package folder there is one folder called "package", in which all the content of the package is found, including the package manifest. The contents of the folder are the unpacked version of the GZipped tarball and SHALL otherwise conform to the requirements for the FHIR NPM Package Spec
Recursion
A package client must resolve package dependencies recursively, but keep the package cache flat. An installed package should itself not contain any dependencies. All packages are installed on the same level.
Example:
us.core.valuesets-2.0.0