Aidbox Docs

FAR Package Management API

Manage FHIR packages with npm-style operations exposed as FHIR operations.

$fhir-package-install

Installs FHIR Implementation Guide packages from a registry or direct URL. Downloads, validates, and installs packages along with their dependencies.

The default NPM registry URL can be changed via the FHIR NPM Package registry setting.

POST /fhir/$fhir-package-install

Installation Behavior

During installation, Aidbox performs pinning and tree-shaking on canonicals:

  • The Core package (e.g., hl7.fhir.r4.core) is automatically installed if missing.
  • The Terminology (THO) package must be provided explicitly if needed.
  • Only referenced canonicals from dependency packages are included (tree-shaking).
  • Each canonical <url>|<version> pair is unique in the final result.

For details on the candidate selection algorithm and recursive pinning process, see Pinning and Tree-Shaking.

Input Parameters

NameCard.TypeDescription
package1..*stringPackage specification in one of the following formats:
  • <name>@<version> — identifier from the registry (e.g., hl7.fhir.us.core@5.0.0)
  • https:// — remote gzipped tarball URL (e.g., https://example.org/package.tgz)
  • file:// — local gzipped tarball path (e.g., file:///path/to/package.tgz)
registry0..1urlPackage registry URL used for resolving non-local packages.
Defaults to https://fs.get-ig.org/pkgs.
override0..*Dependency override rule. Each override parameter contains two part elements: from and to. See Dependency Overrides.
override.part:from1..1stringDependency to override. Accepts a package name (e.g., some.package) or a version-qualified name (e.g., some.package@1.0.0).
override.part:to1..1string | booleanOverride value. See Dependency Overrides for accepted formats.

Output Parameters

ParameterCardinalityTypeExampleDescription
result1..1booleantrueWhether the installation succeeded.
package1..*Installed package information.
package.name1..1stringhl7.fhir.us.core@5.0.0Package identifier in <name>@<version> format.
package.installedCanonicals1..1integer194Number of canonical resources installed.
package.intention1..1stringdirect / transitiveWhether installed directly or as a dependency.
package.source.type1..1stringnpm / fileSource type from which the package was fetched.
package.source.registry0..1stringhttps://fs.get-ig.org/pkgsPackage registry URL.

Dependency Overrides

The override parameter allows you to control how dependencies are resolved during package installation. This is useful when a package declares a dependency that is unavailable, needs to be pinned to a different version, or should be replaced with an alternative package.

Each override parameter must contain exactly two part elements:

  • from (valueString) — identifies the dependency to override.
  • to (valueString or valueBoolean) — specifies the replacement.

from matching rules

FormatDescription
<name>Matches the dependency by package name regardless of version (e.g., some.package).
<name>@<version>Matches only when both the package name and version match (e.g., some.package@1.0.0). Version-qualified overrides take priority over name-only overrides.

to override values

ValueTypeDescription
<version>stringReplaces the dependency version (e.g., "2.0.0"). The package name stays the same.
npm:<name>@<version>stringReplaces the dependency with an entirely different package (e.g., "npm:alt.package@1.0.0").
falsebooleanSkips the dependency entirely — it will not be installed.

Multiple override parameters can be provided in a single request to override several dependencies at once.

Override examples

The examples below demonstrate installing hl7.fhir.us.core@8.0.0 from the Simplifier registry. US Core 8.0.0 depends on us.nlm.vsac@0.23.0, but Simplifier stopped hosting VSAC versions after 0.17.0, which causes installation to fail. Overrides solve this problem.

Override dependency version

Pin us.nlm.vsac to version 0.17.0 (the latest available on Simplifier) instead of the requested 0.23.0:

POST /fhir/$fhir-package-install
Content-Type: application/json
Accept: application/json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "package",
      "valueString": "hl7.fhir.us.core@8.0.0"
    },
    {
      "name": "registry",
      "valueString": "https://packages.simplifier.net"
    },
    {
      "name": "override",
      "part": [
        {
          "name": "from",
          "valueString": "us.nlm.vsac"
        },
        {
          "name": "to",
          "valueString": "0.17.0"
        }
      ]
    }
  ]
}
Override a specific dependency version

Use version-qualified from to only override VSAC when the exact version 0.23.0 is requested:

POST /fhir/$fhir-package-install
Content-Type: application/json
Accept: application/json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "package",
      "valueString": "hl7.fhir.us.core@8.0.0"
    },
    {
      "name": "registry",
      "valueString": "https://packages.simplifier.net"
    },
    {
      "name": "override",
      "part": [
        {
          "name": "from",
          "valueString": "us.nlm.vsac@0.23.0"
        },
        {
          "name": "to",
          "valueString": "0.17.0"
        }
      ]
    }
  ]
}
Skip a dependency

Exclude us.nlm.vsac entirely by setting to to false:

POST /fhir/$fhir-package-install
Content-Type: application/json
Accept: application/json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "package",
      "valueString": "hl7.fhir.us.core@8.0.0"
    },
    {
      "name": "registry",
      "valueString": "https://packages.simplifier.net"
    },
    {
      "name": "override",
      "part": [
        {
          "name": "from",
          "valueString": "us.nlm.vsac"
        },
        {
          "name": "to",
          "valueBoolean": false
        }
      ]
    }
  ]
}
Skip a dependency only for a specific version

Use version-qualified from with to: false to skip the dependency only when that exact version is requested. Other versions of the same package are still installed normally:

POST /fhir/$fhir-package-install
Content-Type: application/json
Accept: application/json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "package",
      "valueString": "hl7.fhir.us.core@8.0.0"
    },
    {
      "name": "registry",
      "valueString": "https://packages.simplifier.net"
    },
    {
      "name": "override",
      "part": [
        {
          "name": "from",
          "valueString": "us.nlm.vsac@0.23.0"
        },
        {
          "name": "to",
          "valueBoolean": false
        }
      ]
    }
  ]
}

This skips us.nlm.vsac only when version 0.23.0 is requested (e.g. by US Core 8.0.0). If another package requested a different version of us.nlm.vsac, it would still be installed.

Replace dependency with a different package

Replace us.nlm.vsac with an alternative package using the npm: prefix:

POST /fhir/$fhir-package-install
Content-Type: application/json
Accept: application/json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "package",
      "valueString": "hl7.fhir.us.core@8.0.0"
    },
    {
      "name": "registry",
      "valueString": "https://packages.simplifier.net"
    },
    {
      "name": "override",
      "part": [
        {
          "name": "from",
          "valueString": "us.nlm.vsac"
        },
        {
          "name": "to",
          "valueString": "npm:my.custom.vsac@1.0.0"
        }
      ]
    }
  ]
}
Multiple overrides in one request

Combine several overrides — pin VSAC to 0.17.0 and skip another dependency:

POST /fhir/$fhir-package-install
Content-Type: application/json
Accept: application/json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "package",
      "valueString": "hl7.fhir.us.core@8.0.0"
    },
    {
      "name": "registry",
      "valueString": "https://packages.simplifier.net"
    },
    {
      "name": "override",
      "part": [
        {
          "name": "from",
          "valueString": "us.nlm.vsac"
        },
        {
          "name": "to",
          "valueString": "0.17.0"
        }
      ]
    },
    {
      "name": "override",
      "part": [
        {
          "name": "from",
          "valueString": "us.cdc.phinvads"
        },
        {
          "name": "to",
          "valueBoolean": false
        }
      ]
    }
  ]
}

Examples

Install package from default registry

POST /fhir/$fhir-package-install
Content-Type: application/json
Accept: application/json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "package",
      "valueString": "hl7.fhir.us.core@5.0.0"
    }
  ]
}
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "result",
      "valueBoolean": true
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "hl7.fhir.us.core@5.0.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 194
        },
        {
          "name": "intention",
          "valueString": "direct"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "us.nlm.vsac@0.3.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 20
        },
        {
          "name": "intention",
          "valueString": "transitive"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "hl7.fhir.uv.sdc@3.0.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 11
        },
        {
          "name": "intention",
          "valueString": "transitive"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "hl7.terminology.r4@3.1.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 7
        },
        {
          "name": "intention",
          "valueString": "transitive"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    }
  ]
}

Install package from specific registry

POST /fhir/$fhir-package-install
Content-Type: application/json
Accept: application/json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "package",
      "valueString": "hl7.fhir.us.core@5.0.0"
    },
    {
      "name": "registry",
      "valueString": "https://packages.simplifier.net"
    }
  ]
}
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "result",
      "valueBoolean": true
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "hl7.fhir.us.core@5.0.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 194
        },
        {
          "name": "intention",
          "valueString": "direct"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "us.nlm.vsac@0.3.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 20
        },
        {
          "name": "intention",
          "valueString": "transitive"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "hl7.fhir.uv.sdc@3.0.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 11
        },
        {
          "name": "intention",
          "valueString": "transitive"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "hl7.terminology.r4@3.1.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 7
        },
        {
          "name": "intention",
          "valueString": "transitive"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    }
  ]
}

Install latest version of package

POST /fhir/$fhir-package-install
Content-Type: application/json
Accept: application/json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "package",
      "valueString": "hl7.fhir.us.core"
    }
  ]
}
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "result",
      "valueBoolean": true
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "hl7.fhir.us.core@8.0.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 205
        },
        {
          "name": "intention",
          "valueString": "direct"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "us.nlm.vsac@0.23.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 96
        },
        {
          "name": "intention",
          "valueString": "transitive"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "hl7.terminology.r4@6.4.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 23
        },
        {
          "name": "intention",
          "valueString": "transitive"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "hl7.fhir.uv.extensions.r4@5.2.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 2
        },
        {
          "name": "intention",
          "valueString": "transitive"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "us.cdc.phinvads@0.12.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 2
        },
        {
          "name": "intention",
          "valueString": "transitive"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "hl7.fhir.uv.sdc@3.0.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 11
        },
        {
          "name": "intention",
          "valueString": "transitive"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    }
  ]
}
Install package from a local file
POST /fhir/$fhir-package-install
Content-Type: application/json
Accept: application/json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "package",
      "valueString": "file:///tmp/my-package.tgz"
    }
  ]
}
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "result",
      "valueBoolean": true
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "my.package@1.0.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 5
        },
        {
          "name": "intention",
          "valueString": "direct"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "file"
            }
          ]
        }
      ]
    },
  ]
}

Install multiple packages

POST /fhir/$fhir-package-install
Content-Type: application/json
Accept: application/json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "package",
      "valueString": "hl7.fhir.us.core@5.0.0"
    },
    {
      "name": "package",
      "valueString": "hl7.fhir.us.mcode@2.0.0"
    }
  ]
}
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "result",
      "valueBoolean": true
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "hl7.fhir.us.core@5.0.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 194
        },
        {
          "name": "intention",
          "valueString": "direct"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "hl7.fhir.us.mcode@2.0.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 153
        },
        {
          "name": "intention",
          "valueString": "direct"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "us.nlm.vsac@0.3.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 20
        },
        {
          "name": "intention",
          "valueString": "transitive"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "hl7.fhir.uv.sdc@3.0.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 11
        },
        {
          "name": "intention",
          "valueString": "transitive"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "hl7.terminology.r4@3.1.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 7
        },
        {
          "name": "intention",
          "valueString": "transitive"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "hl7.fhir.us.core@4.0.0"
        },
        {
          "name": "installedCanonicals",
          "valueInteger": 30
        },
        {
          "name": "intention",
          "valueString": "transitive"
        },
        {
          "name": "source",
          "part": [
            {
              "name": "type",
              "valueString": "npm"
            },
            {
              "name": "registry",
              "valueString": "https://fs.get-ig.org/pkgs"
            }
          ]
        }
      ]
    }
  ]
}

$fhir-package-uninstall

Uninstalls FHIR Implementation Guide packages from the server. Removes the specified packages and their canonical resources.

POST /fhir/$fhir-package-uninstall

Input Parameters

NameCard.TypeDescription
package1..*stringPackage identifier in <name>@<version> format (e.g., hl7.fhir.us.core@5.0.0).

Output Parameters

ParameterCardinalityTypeExampleDescription
result1..1booleantrueWhether the uninstallation succeeded.
package1..*Uninstalled package information.
package.name1..1stringhl7.fhir.us.core@5.0.0Package identifier in <name>@<version> format.
package.status1..1stringdeletedStatus of the uninstallation.

Examples

Uninstall package

POST /fhir/$fhir-package-uninstall
Content-Type: application/json
Accept: application/json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "package",
      "valueString": "hl7.fhir.us.core@8.0.0"
    }
  ]
}
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "result",
      "valueBoolean": true
    },
    {
      "name": "package",
      "part": [
        {
          "name": "name",
          "valueString": "hl7.fhir.us.core@8.0.0"
        },
        {
          "name": "status",
          "valueString": "deleted"
        }
      ]
    }
  ]
}

See also

Last updated: