Full table of contents¶
- User guide
- Sysadmin guide
- Maintainer’s guide
- Installing CKAN
- Installing CKAN from package
- Installing CKAN from source
- Installing CKAN with Docker Compose
- Deploying a source install
- Upgrading CKAN
- Getting started
- Database Management
- Command Line Interface (CLI)
- Troubleshooting ckan Commands
- ckan Commands Reference
- asset: WebAssets commands
- config-tool: Tool for editing options in a CKAN config file
- datapusher: Perform commands in the datapusher
- dataset: Manage datasets
- datastore: Perform commands to set up the datastore
- db: Manage databases
- front-end-build: Creates and minifies css and JavaScript files
- generate: Generate empty extension files to expand CKANs
- jobs: Manage background jobs
- less: Compile all root less documents into their CSS counterparts
- minify: Create minified versions of the given Javascript and CSS files
- notify: Send out modification notifications
- plugin-info: Provide info on installed plugins
- profile: Code speed profiler
- run: Start Development server
- search-index: Search index commands
- search-index: Rebuild search index
- seed: Create test data in the database
- sysadmin: Give sysadmin rights
- tracking: Update tracking statistics
- translation: Translation helper functions
- user: Create and manage users
- views: Create views on relevant resources
- Organizations and authorization
- Organizations
- Dataset collaborators
- Configuration File Options
- ckan.auth.anon_create_dataset
- ckan.auth.create_unowned_dataset
- ckan.auth.create_dataset_if_not_in_organization
- ckan.auth.user_create_groups
- ckan.auth.user_create_organizations
- ckan.auth.user_delete_groups
- ckan.auth.user_delete_organizations
- ckan.auth.create_user_via_api
- ckan.auth.create_user_via_web
- ckan.auth.roles_that_cascade_to_sub_groups
- ckan.auth.public_user_details
- ckan.auth.public_activity_stream_detail
- ckan.auth.allow_dataset_collaborators
- ckan.auth.allow_admin_collaborators
- ckan.auth.allow_collaborators_to_change_owner_org
- ckan.auth.create_default_api_keys
- Extensions
- Data preview and visualization
- FileStore and file uploads
- DataStore extension
- Apps & Ideas
- Tag Vocabularies
- Form Integration
- Linked Data and RDF
- Background jobs
- Email notifications
- Page View Tracking
- Multilingual Extension
- Stats Extension
- Configuration Options
- Environment variables
- Updating configuration options during runtime
- CKAN configuration file
- General Settings
- Development Settings
- Repoze.who Settings
- Database Settings
- sqlalchemy.url
- sqlalchemy.*
- ckan.datastore.write_url
- ckan.datastore.read_url
- ckan.datastore.sqlalchemy.*
- ckan.datastore.default_fts_lang
- ckan.datastore.default_fts_index_method
- ckan.datastore.sqlsearch.enabled
- ckan.datastore.search.rows_default
- ckan.datastore.search.rows_max
- ckan.datastore.sqlsearch.allowed_functions_file
- Site Settings
- Authorization Settings
- ckan.auth.anon_create_dataset
- ckan.auth.create_unowned_dataset
- ckan.auth.create_dataset_if_not_in_organization
- ckan.auth.user_create_groups
- ckan.auth.user_create_organizations
- ckan.auth.user_delete_groups
- ckan.auth.user_delete_organizations
- ckan.auth.create_user_via_api
- ckan.auth.create_user_via_web
- ckan.auth.roles_that_cascade_to_sub_groups
- ckan.auth.public_user_details
- ckan.auth.public_activity_stream_detail
- ckan.auth.allow_dataset_collaborators
- ckan.auth.allow_admin_collaborators
- ckan.auth.allow_collaborators_to_change_owner_org
- ckan.auth.create_default_api_keys
- API Token Settings
- Search Settings
- ckan.site_id
- solr_url
- ckan.search.automatic_indexing
- ckan.search.solr_commit
- ckan.search.show_all_types
- ckan.search.default_include_private
- ckan.search.default_package_sort
- search.facets.limit
- search.facets.default
- ckan.extra_resource_fields
- ckan.search.rows_max
- ckan.group_and_organization_list_max
- ckan.group_and_organization_list_all_fields_max
- Redis Settings
- CORS Settings
- Plugins Settings
- Front-End Settings
- ckan.site_title
- ckan.site_description
- ckan.site_intro_text
- ckan.site_logo
- ckan.site_about
- ckan.theme
- ckan.favicon
- ckan.legacy_templates
- ckan.datasets_per_page
- package_hide_extras
- ckan.dumps_url
- ckan.dumps_format
- ckan.recaptcha.publickey
- ckan.recaptcha.privatekey
- ckan.featured_groups
- ckan.featured_orgs
- ckan.default_group_sort
- ckan.gravatar_default
- ckan.debug_supress_header
- Resource Views Settings
- Theming Settings
- Storage Settings
- Uploader Settings
- Webassets Settings
- DataPusher Settings
- User Settings
- Activity Streams Settings
- Feeds Settings
- Internationalisation Settings
- Form Settings
- Email Settings
- Installing CKAN
- API guide
- Extending guide
- Writing extensions tutorial
- Using custom config settings in extensions
- Making configuration options runtime-editable
- Testing extensions
- Best practices for writing extensions
- Follow CKAN’s coding standards
- Use the plugins toolkit instead of importing CKAN
- Don’t edit CKAN’s database tables
- Use migrations when introducing new models
- Declare models using shared metadata
- Implement each plugin class in a separate Python module
- Avoid name clashes
- Internationalize user-visible strings
- Add third party libraries to requirements.txt
- Do not automatically modify the database structure
- Customizing dataset and resource metadata fields using IDatasetForm
- Plugin interfaces reference
- Plugins toolkit reference
- Validator functions reference
- Internationalizing strings in extensions
- Migration from Pylons to Flask
- Theming guide
- Customizing CKAN’s templates
- Creating a CKAN extension
- Replacing a default template file
- Jinja2
- Extending templates with
{% ckan_extends %}
- Replacing template blocks with
{% block %}
- Extending parent blocks with Jinja’s
{{ super() }}
- Template helper functions
- Adding your own template helper functions
- Template snippets
- Adding your own template snippets
- HTML tags and CSS classes
- Accessing custom config settings from templates
- Adding static files
- Customizing CKAN’s CSS
- Adding CSS and JavaScript files using Webassets
- Customizing CKAN’s JavaScript
- Best practices for writing CKAN themes
- Custom Jinja2 tags reference
- Variables and functions available to templates
- Objects and methods available to JavaScript modules
- Template helper functions reference
- Template snippets reference
- JavaScript sandbox reference
- JavaScript API client reference
- CKAN jQuery plugins reference
- Customizing CKAN’s templates
- Contributing guide
- Reporting issues
- Translating CKAN
- Testing CKAN
- Writing commit messages
- Making a pull request
- Reviewing and merging a pull request
- Writing documentation
- Projects for beginner CKAN developers
- CKAN code architecture
- CSS coding standards
- HTML coding standards
- JavaScript coding standards
- Python coding standards
- String internationalization
- Unicode handling
- Testing coding standards
- Transitioning from legacy to new tests
- Guidelines for writing new-style tests
- How should tests be organized?
- Recipe for a test method
- How detailed should tests be?
- Creating test objects:
ckan.tests.factories
- Test helper functions:
ckan.tests.helpers
- Pytest fixtures
- Mocking: the
mock
library - Writing
ckan.logic.action
tests - Writing
ckan.logic.auth
tests - Writing converter and validator tests
- No tests for
ckan.logic.schema.py
- Writing
ckan.controllers
tests - Writing
ckan.model
tests - Writing
ckan.lib
tests - Writing
ckan.plugins
tests - Writing
ckan.ckanext
tests
- Creating test objects:
- Frontend development guidelines
- Templating
- Assets
- Creating a new template
- Template Blocks
- Blocks in page.html
- Blocks in base.html
- Building a JavaScript Module
- Install frontend dependencies
- File structure
- Stylesheets
- JavaScript
- Database migrations
- Upgrading CKAN’s dependencies
- Doing a CKAN release
- Changelog