Skip to content

Modern PURL service for maintaining persistent URLs

License

Notifications You must be signed in to change notification settings

fabiante/persurl

Repository files navigation

PersURL

Application to manage and resolve PURL links.

Usage

Configuration

The application can be configured using:

  • env variables, prefixed with PERSURL_ (example: PERSURL_DB_DSN)
  • config files (example: app.yml)

Have a look at example.config.yml for an example configuration.

Documentation

Until the documentation becomes large enough, this README will be used to documentation features and concepts.

Concept

The application handles PURL domains. A domain is a collection of PURLs which you can think of as shortened URLs. When opened in a browser (a GET request), PURLs forward the user to the target URL which is configured by the PURLs maintainer.

PURL Support

This project tries it's best to implement PURL support as it can be understood from a couple of hours researching the topic on the web. It is possible that some implementations deviate from what PURL was ment to do.

If you find any critical deviations or design flaws which you think should be adressed, please open an issue to resolve that.

Contributing

Testing

This project tries to implement tests in a behaviour-driven style. If you add / change features, ensure that test specifications ensure correct behaviour. Test drivers execute test specifications.

Load Tests

Load tests can enabled via the env variable TEST_LOAD=1 or setting test_load to 1 in your config file.

These run the application and generate load by running multiple agents simulating user behaviour. The motivation of these tests is to ensure that the application can be used for a large user base which create large amounts of data.