Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

OverviewApproachModuleTicket
Extend authority source file schema to store local files
  1. Extend authoritySourceFile schema to contain HRID information.
  2. Implement AuthoritySourceFileHridManager
      - Validation (if source = 'local' then codes.size = 1) else throw exception
mod-inventory-storage2 sp
Implement sequence number generation mechanism for authority local files
  1. Extend AuthoritySourceFileHridManager to work with sequences
      -  Create Create sequence for authority local file after validation
      -  Drop Drop sequence for authority local file after deletion
  2. Extend AuthorityService createAuthority()
      - Retrieve from repository 'local' file by sourceFileId
      - Retrieve next value from localFile sequence 
      - Format next value to NaturalId(HRID) format
      - Set NaturalId for Authority   
mod-inventory-storage5 sp

...

Code Block
themeDJango
borderStyledashed
titleAuthority Source File Schema
collapsetrue
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "An Authority source file",
  "type": "object",
  "properties": {
    "id": {
      "description": "unique ID of the Authority source file; a UUID",
      "$ref": "uuid.json"
    },
    "name": {
      "type": "string",
      "description": "Authority source file name"
    },
    "codes": {
      "type" : "array",
      "description": "List of identifying prefix",
      "items": {
        "type": "string",
        "description": "identifying prefix, i.e. 'n', 'D', 'fst'"
        "pattern": "^[0-9a-zA-Z.-]{0,10}$"
       }
    },
    "type": {
      "type": "string",
      "description": "Type of authority records stored in source file"
    },
    "baseUrl": {
      "type": "string",
      "description": "Base URL of the source file origin"
    },         
    "startNumber": {
      "description": "The number from which to start generating HRIDs",
      "type": "integer",
      "minimum": 1,
      "maximum": 99999999999
    },
    "source": {
      "type": "string",
      "description": "label indicating where the authority source file entry originates from, i.e. 'folio' or 'local'",
      "enum": [
        "folio",
        "local"
      ]
    },
    "metadata": {
      "type": "object",
      "$ref": "raml-util/schemas/metadata.schema",
      "readonly": true
    }
  },
  "additionalProperties": false,
  "required": [
    "name",
    "codes",
    "type",
    "source"
  ]
} 


Sequence number generation mechanism for authority local files

Intro

This page a result of the investigation of organizing Hrid generation for MARC authority records in data-import. A generator needs to follow the requirements listed below:

  • supports a consistent sequence
  • honors what the user enters in Starts with field via Settings > MARC authority > Authorities > HRID handling
  • honors what the user enters in prefix field via Settings > quickMARC > Authorities > HRID handling
  • honors the HRID character limit of 21 [10 character limit for prefix, followed by up to 11 digits]

Approach

There is a similar approach that works already in the mod-inventory-storage. It generates Hrid numbers for Instances, Holdings, and Item records, and can be configured from UI (Settings → Inventory → Hrid handling);

Select local authority file on the UI

...