Skip to end of banner
Go to start of banner

How to push permissions to Scratch environment

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

To update permissions for a module on a Scratch environment we need to register a module descriptor in okapi. This is how you do this:

  1. Create a descriptor file on your machine (I will call it descriptor.json) with following content:
    Replace following placeholders:
    moduleName - name property in package.json without "@folio/"

    moduleVersion - version of module. It's a bit of a hack to get it - go to module's page in npm-folioci (for example https://repository.folio.org/service/rest/repository/browse/npm-folioci/%40folio/eholdings/), find the latest version number and increase patch by 1.

    moduleDescription - description property in package.json

    requires - list of required interfaces. Can also be found in package.json

    permissionSets - list of UI permissions. Can be found in package.json

    {
      "id": "folio_moduleName-moduleVersion",
      "name": "moduleDescription",
      "requires": [
        {
          "id": "interfaceId",
          "version": "interfaceVersion"
        }
      ],
      "optional": [],
      "permissionSets": [
        {
          "permissionName": "module.eholdings.enabled",
          "displayName": "UI: eHoldings module is enabled",
          "subPermissions": [
            "kb-ebsco.all",
            "tags.all"
          ],
          "visible": false
        },
    ... ] }


  2. Run the following command to push the descriptor to okapi
    curl -sL -w '\n' -D - -X POST -H "Content-type: application/json" -d @/descriptor.json $OKAPI_URL/_/proxy/modules?check=false
    

    Replace $OKAPI_URL with okapi url of scratch environment

    If you get an error saying that version already exists - change patch of moduleVersion to something else like "0000001"

  3. Run the following command to enable module for tenant (again, replace moduleName and moduleVersion placeholders from descriptor)
    curl -w '\n' -X POST -d '[ { "id" : "folio_moduleName-moduleVersion" , "action" : "enable" } ]' $OKAPI_URL/_/proxy/tenants/diku/install
  4. Run bootstrap script
    docker run --rm -e TENANT_ID=diku -e ADMIN_USER=diku_admin -e ADMIN_PASSWORD=admin -e OKAPI_URL=$OKAPI_URL docker.dev.folio.org/bootstrap-superuser
    



  • No labels