Configuration

Configuration variables for defining invenio-sip2.

SIP2_DATASTORE_HANDLER datastore, default: Sip2RedisDatastore
SIP2_DATASTORE_REDIS_PREFIX Prefix for redis keys, default sip2
SIP2_DATASTORE_REDIS_URL Redis Datastore URL
SIP2_MESSAGE_ACTIONS Dictionary of all selfcheck actions.
SIP2_REMOTE_ACTION_HANDLERS Dictionary of remote action handlers. See example below.
SIP2_MESSAGE_TYPES Define all message types conforming to SIP2 protocol.
SIP2_FIXED_FIELD_DEFINITION All fixed field available.
SIP2_VARIABLE_FIELD_DEFINITION All variable field available.

Datastore handlers

Use SIP2_DATASTORE_HANDLER to define your custom datastore.

Provided datastore by invenio-sip2 is:
class:invenio_sip2.datastore:Sip2RedisDatastore

Remote action handlers

Handlers allow customizing endpoints for each selfcheck actions.

Each custom handler actions must be defined in the SIP2_ACTIONS_HANDLERS dictionary, where the keys are the application names and the values the configuration parameters for the application.

SIP2_REMOTE_ACTION_HANDLERS = dict(
    myapp=dict(
        # configuration values for myapp ...
    ),
)

The application name is used to start invenio-sip2 server and call customized handlers.

Configuration of a single remote application is a dictionary with the following keys:

  • login_handler - Import path to login selfcheck callback handler.
  • logout_handler - Import path to logout selfcheck callback handler.
  • system_status_handler - Import path to automated system status callback
    handler.
  • patron_handlers - A dictionary of import path to patron callback handler.
    • validate_patron - Import path to validate patron callback handler.
    • authorize_patron - Import path to authorize patron callback handler.
    • enable_patron - Import path to enable patron callback handler.
    • patron_status - Import path to patron status callback handler.
    • account - Import path to retrieve patron account callback handler.
  • item_handlers - A dictionary of import path to item callback handler.
    • item - Import path to retrieve item callback handler.
  • circulation_handlers - A dictionary of import path to circulation
    callback handler. - checkout - Import path to checkout item callback handler. - checkin - Import path to checkin item callback handler. - hold - Import path to hold item callback handler. - renew - Import path to renew item callback handler. - renew_all - Import path to renew_all items callback handler.
  • fee_paid_handler - Import path to fee paid callback handler.``
SIP2_REMOTE_ACTION_HANDLERS = dict(
    app=dict(
        login_handler="...",
        logout_handler="...",
        system_status_handler="...",
        patron_handlers=dict(
            validate_patron="...",
            authorize_patron="...",
            enable_patron="...",
            patron_status="...",
            account="...",
        ),
        item_handlers=dict(
            item="..."
        ),
        circulation_handlers=dict(
            checkout="...",
            checkin="...",
            hold="...",
            renew="...",
        ),
        fee_paid_handler="...",
    )
)
invenio_sip2.config.BABEL_DEFAULT_LANGUAGE = 'en'

Default language

invenio_sip2.config.SIP2_CIRCULATION_DATE_FORMAT = '%Y%m%d %H%M%S'

SIP2 date format for circulation.

invenio_sip2.config.SIP2_DATE_FORMAT = '%Y%m%d %H%M%S'

SIP2 date format for transaction.

invenio_sip2.config.SIP2_DEFAULT_LANGUAGE = 'en'

Default SIP2 language

invenio_sip2.config.SIP2_DEFAULT_SECURITY_MARKER = '00'

SIP2 default security marker type.

invenio_sip2.config.SIP2_ERROR_DETECTION = True

Enable error detection on message.

invenio_sip2.config.SIP2_LINE_TERMINATOR = '\r'

Message line separator.

invenio_sip2.config.SIP2_LOGGING_CONSOLE = True

Enable logging to the console.

invenio_sip2.config.SIP2_LOGGING_CONSOLE_LEVEL = 'INFO'

Console logging level.

All requests and responses will be written to the console if the level is on info mode. Otherwise, they will not logged.

invenio_sip2.config.SIP2_LOGGING_FS_BACKUPCOUNT = 5

Number of rotated log files to keep.

invenio_sip2.config.SIP2_LOGGING_FS_LEVEL = 'INFO'

Console logging level.

Defaults to write all requests and responses.

invenio_sip2.config.SIP2_LOGGING_FS_LOGFILE = None

Enable logging to the filesystem.

A valid filesystem path is required to enable logging.

invenio_sip2.config.SIP2_LOGGING_FS_MAXBYTES = 104857600

Maximum size of logging file. Default: 100MB.

invenio_sip2.config.SIP2_PERMISSIONS_FACTORY(action)

Define factory permissions.

invenio_sip2.config.SIP2_PROTOCOL = '2.00'

SIP2 protocol version.

invenio_sip2.config.SIP2_REMOTE_ACTION_HANDLERS = {}

Configuration of remote handlers.

invenio_sip2.config.SIP2_RETRIES_ALLOWED = 10

Number of retries allowed.

invenio_sip2.config.SIP2_SOCKET_BUFFER_SIZE = '1024'

Socket buffer size.

invenio_sip2.config.SIP2_SUPPORT_CHECKIN = True

Support check in items.

invenio_sip2.config.SIP2_SUPPORT_CHECKOUT = True

Support check out items.

invenio_sip2.config.SIP2_SUPPORT_OFFLINE_STATUS = True

Support off line operation.

invenio_sip2.config.SIP2_SUPPORT_ONLINE_STATUS = True

Support online status send by automatic circulation system.

invenio_sip2.config.SIP2_SUPPORT_RENEWAL_POLICY = True

Support patron renewal requests as a policy.

invenio_sip2.config.SIP2_SUPPORT_STATUS_UPDATE = True

Support patron status updating by the selfcheck.

invenio_sip2.config.SIP2_TEXT_ENCODING = 'UTF-8'

Message text charset encoding.

invenio_sip2.config.SIP2_TIMEOUT_PERIOD = 10

Server timeout.