Security News
38% of CISOs Fear They’re Not Moving Fast Enough on AI
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
BeakerHelpers is a Beaker_ extension that can show the active sessions and clean the old ones. Currently it only works with beaker.ext.database storage backend.
BeakerHelpers is also a namespace package so new plugins can be created under this namespace_.
You can find the Git repository at github.com_
easy_install_::
$ <env>/bin/easy_install BeakerHelpers
pip_::
$ <env>/bin/pip install BeakerHelpers
You can call get_sessions
to get a list of active sessions (dicts)::
>>> import sqlalchemy
>>> from beakerhelpers.sessions import get_sessions
>>> sessions_table = sqlalchemy.Table('beaker_cache',
... sqlalchemy.MetaData('sqlite:///my.db'), autoload=True)
>>> get_sessions(sessions_table, timeout=3600) # timeout in seconds
[{
'_accessed_time': datetime.datetime(2010, 1, 1, 10, 10, 10),
'_creation_time': datetime.datetime(2010, 1, 1, 08, 40, 00),
'user_name': u'john@doe.com',
}]
The above form is suitable for Python access. If you want to provide this data
to the user you could use show_sessions
with the same parameters instead::
>>> print show_sessions(sessions_table, timeout=3600)
--------------------------------------------------------
_accessed_time | _creation_time | user_name
--------------------------------------------------------
2010-01-01 10:10:10 | 2010-01-01 08:40:00 | john@doe.com
However you can use paster beakersessions
to call the show_sessions
from
the console::
$ <env>/bin/paster beakersessions cfg/prod.ini
--------------------------------------------------------
_accessed_time | _creation_time | user_name
--------------------------------------------------------
2010-01-01 10:10:10 | 2010-01-01 08:40:00 | john@doe.com
In this case the cfg/prod.ini
file should be a paste.deploy
loadable
configuration file. BeakerHelpers expects to find these keys in the [app:main]
section of cfg/prod.ini
:
- ``beaker.session.type`` = `ext:database` - the only supported backend (yet)
- ``beaker.session.url`` - an `SQLAlchemy engine URL`_
- ``beaker.session.timeout`` - session timeout in seconds
- ``beaker.session.table_name`` - (optional) session storage table.
According to beaker.ext.database_, defaults to `beaker_cache`.
paster beakersessions
command also takes two optional arguments:
- ``--prefix, -p`` - beaker key prefix in the config file, defaults to
`beaker.session`
- ``--timeout, -t`` - do not show sessions older than the timeout. Timeout
examples:
- `3s` - 3 seconds
- `14m` - 14 minutes
- `36h` - 36 hours
- `2d` - 2 days
- `0` - show all sessions (ignore timeout even in the config file)
If not provided the timeout will be taken from the config file,
`<prefix>.timeout` (seconds).
You can use cleanup_sessions
from your Python scripts to remove old
sessions::
>>> import sqlalchemy
>>> from beakerhelpers.sessions import cleanup_sessions
>>> sessions_table = sqlalchemy.Table('beaker_cache',
... sqlalchemy.MetaData('sqlite:///my.db'), autoload=True)
>>> cleanup_sessions(sessions_table, timeout=3600) # timeout in seconds
The sessions older than 1 hour would get cleaned. However, session cleanup is particularly convenient to be called as a paste script::
$ <env>/bin/paster beakercleanup cfg/prod.ini
It expects the same config file structure and takes the same optional arguments
as beakersessions. However, in this case sessions older than --timeout
will be removed.
Due to namespace issues BeakerShowSessions and BeakerCleanup can not be installed with pip and/or easy_install. Their functionality got merged into this package and access became simpler. We strongly encourage to use BeakerHelpers instead.
.. _Beaker: http://beaker.groovie.org .. _beaker.ext.database: http://www.bitbucket.org/bbangert/beaker/src/554a46f4a946/beaker/ext/database.py#cl-35 .. _SQLAlchemy engine URL: http://www.sqlalchemy.org/docs/05/dbengine.html#create-engine-url-arguments .. _github.com: http://github.com/kaukas/BeakerHelpers .. _namespace: http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages .. _easy_install: http://peak.telecommunity.com/DevCenter/EasyInstall .. _pip: http://pip.openplans.org/
FAQs
An extendable Beaker helpers package to manage Beaker sessions
We found that BeakerHelpers demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer 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
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Security News
Company News
Socket is joining TC54 to help develop standards for software supply chain security, contributing to the evolution of SBOMs, CycloneDX, and Package URL specifications.