Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
This package provides a search indexes for easy Haystack 2 integration with django CMS.
This is a an open-source project. We'll be delighted to receive your
feedback in the form of issues and pull requests. Before submitting your
pull request, please review our contribution guidelines <http://docs.django-cms.org/en/latest/contributing/index.html>
_.
We're grateful to all contributors who have helped create and maintain this package.
Contributors are listed at the contributors <https://github.com/divio/aldryn-search/graphs/contributors>
_
section.
After installing aldryn-search through your package manager of choice, add aldryn_search
to your
INSTALLED_APPS
. If you run a multilingual CMS setup, you have to define a haystack backend for every language
in use::
HAYSTACK_CONNECTIONS = {
'en': {
'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
'URL': 'http://my-solr-server/solr/my-site-en/',
'TIMEOUT': 60 * 5,
'INCLUDE_SPELLING': True,
'BATCH_SIZE': 100,
},
'fr': {
'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
'URL': 'http://my-solr-server/solr/my-site-fr/',
'TIMEOUT': 60 * 5,
'INCLUDE_SPELLING': True,
'BATCH_SIZE': 100,
},
}
To make sure the correct backend is used during search, add aldryn_search.router.LanguageRouter
to your
HAYSTACK_ROUTERS
setting::
HAYSTACK_ROUTERS = ['aldryn_search.router.LanguageRouter',]
When using multiple languages, usually there's one search backend per language, when indexing it's important to know
which language is currently being used, this can be facilitated by the ALDRYN_SEARCH_LANGUAGE_FROM_ALIAS
setting,
this setting could be a callable or a string path that resolves to one.
Please keep in mind that it's usually not a good idea to import things in your settings, however there are cases where it seems overkill to create a function to handle the alias, for example::
ALDRYN_SEARCH_LANGUAGE_FROM_ALIAS = lambda alias: alias.split('-')[-1]
the example above could be used when using multiple languages and sites, all backends could have a language suffix.
The same could be achieved using a function defined somewhere else in your code like so::
ALDRYN_SEARCH_LANGUAGE_FROM_ALIAS = "my_app.helpers.language_from_alias"
If any of the above return None then settings.LANGUAGE_CODE
will be used.
By default this setting evaluates to a function that checks if the alias is in settings.LANGUAGES
and if so it
uses the alias as a language.
For a complete Haystack setup, please refer to their documentation <https://django-haystack.readthedocs.io/>
_.
For more documentation, see the docs folder <https://github.com/divio/aldryn-search/tree/master/docs/>
_.
aldryn-search comes with an App Hook for django CMS, and a search view using Django's class based views. If you
want to use this app hook, you can either subclass it and register it yourself, or set
ALDRYN_SEARCH_REGISTER_APPHOOK
to True
.
If you want to exclude some cms plugins from indexing, you can specify ALDRYN_SEARCH_PLUGINS_EXCLUDE
setting like so::
ALDRYN_SEARCH_EXCLUDED_PLUGINS = [
"PluginA", "PluginB"
]
For pagination, aldryn-search uses aldryn_common.paginator.DiggPaginator
. If you want to use this built-in
pagination, make sure to install django-spurl <https://github.com/j4mie/django-spurl>
_, and add then add spurl
to INSTALLED_APPS
.
Results are paginated according to the ALDRYN_SEARCH_PAGINATION
setting (default: 10).
If set to None
pagination is disabled.
FAQs
An extension to django CMS to provide multilingual Haystack indexes
We found that aldryn-search demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.