Skip to main content

Shared components library for Export Directory.

Project description


circle-ci-image codecov-image pypi-image

Reusable components used across the directory applications for the Department for International Trade.


pip install directory-components


$ git clone
$ cd directory-components


To view the components in the browser run the following command:

$ make run_demo

and go to in your browser

To test cookies locally add this to your /etc/hosts:

Then visit the demo at


Environment variables

Environment variable Notes
FEATURE_SEARCH_ENGINE_INDEXING_DISABLED Controls RobotsIndexControlHeaderMiddlware.
FEATURE_MAINTENANCE_MODE_ENABLED Controls MaintenanceModeMiddleware.
FEATURE_FLAGS Place to store the service's feature flags.
IP_RESTRICTOR_REMOTE_IP_ADDRESS_RETRIEVER Method for determining client IP address: 'govuk-paas' or 'ipware'
IP_RESTRICTOR_SKIP_CHECK_ENABLED Flag to enable skipping IP check if cookie is valid
IP_RESTRICTOR_SKIP_CHECK_SENDER_ID The shared sender id for skipping IP check
IP_RESTRICTOR_SKIP_CHECK_SECRET The shared secret for skipping IP check


Middleware can be found in directory_components.middleware.FooBar.

Middleware Notes
RobotsIndexControlHeaderMiddlware Informs the webcrawlers to not index the service if FEATURE_SEARCH_ENGINE_INDEXING_DISABLED is true.
MaintenanceModeMiddleware Redirects to if FEATURE_MAINTENANCE_MODE_ENABLED is true.
NoCacheMiddlware Prevents any page in the service from caching pages of logged in users.
PrefixUrlMiddleware Redirects use from unprefixed url to prefixed url if FEATURE_URL_PREFIX_ENABLED is true.
IPRestrictorMiddleware Convinience wrapper around (django-admin-ip-restrictor)[].

Context processors

Middleware can be found in directory_components.context_processors.foo_bar.

Processor Context variable name Notes
sso_processor Exposes the state of the SSO user.
analytics directory_components_analytics GA details. Used by base template.
header_footer_processor header_footer_urls Urls used by base template's header and footer.
urls_processor directory_components_urls More urls used by base template's header and footer.
feature_flags feature_flags Exposes the service's feature flags.

Auto update services dependency

To automatically update the dependences of services that use this library call the following command:

$ make update

Publish to PyPI

The package should be published to PyPI on merge to master. If you need to do it locally then get the credentials from rattic and add the environment variables to your host machine:


Then run the following command:

make publish

Project details

Release history Release notifications

This version
History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
directory_components-3.5.0-py3-none-any.whl (209.1 kB) Copy SHA256 hash SHA256 Wheel py3

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page