
Security News
GitHub Actions Pricing Whiplash: Self-Hosted Actions Billing Change Postponed
GitHub postponed a new billing model for self-hosted Actions after developer pushback, but moved forward with hosted runner price cuts on January 1.
@canonical/cookie-policy
Advanced tools
A script and style sheet that displays a cookie policy notification
This project contains the scripts and styles to display a cookie policy notification on a web page.
You can use it to display a custom cookies message of your choosing on your own web page.
This project can be installed via an NPM package.
yarn add @canonical/cookie-policy
...or...
npm install @canonical/cookie-policy
You can then install the library either by directly linking to it or via an ES6 import.
To consume the library directly, add a link to the JS file containing an IIFE and call the lib:
<script src="[ INSERT YOUR LOCAL PATH ]/js/cookie-policy.js"></script>
<script>
cpNs.cookiePolicy();
</script>
import { cookiePolicy } from '@canonical/cookie-policy';
If you would like users to change their preferences you can add js-revoke-cookie-manager class to any element that is present in the document to recall the policy manager.
<button class="js-revoke-cookie-manager">Revoke cookie manager</button>
or
<a href="" class="js-revoke-cookie-manager">Revoke cookie manager</a>
If you add the query ?cp=hide to any URL the cookie policy will not be rendered. The main use case is to visit the policy page without the modal blocking the content.
You can set up the cookie policy with a callback when a preference is selected.
function callbackFunction() {
alert('Calling back');
}
cpNs.cookiePolicy(callbackFunction);
import { cookiePolicy } from '@canonical/cookie-policy';
cookiePolicy();
Essential cookies are always allowed, unless the user turns them off in their browser. Otherwise, there will be a series of values the _cookies_accepted cookie can contain :
| Cookie value | Description | Note |
|---|---|---|
| all | All cookies accepted by the user. Currently used by the existing widget | Previous value was true. Using the same cookie. |
| essential | Essential cookies accepted. | This is used to hide the notification instead of not setting the cookie |
| performance | Performance cookies accepted. | - |
| functionality | Functionality cookies accepted. | - |
This package will attempt to POST users cookie preferences to our shared cookie service (cookies.canonical.com).
This is handled by a Python package, canonicalwebteam.cookies_service, that expose an internal endpoint '/cookies/set-preferences',
The attempt to POST will only be made providing the cookie _cookies_service_up=1 exists. Applications not using the aforementioned Python package will not attempt to POST the users preferences.
If you would like to help improve this project, here is a list of commands to help you get started.
Install the requisite dependencies;
npm install
To build the JS and CSS into the build folder, run:
npm run build
You can view the build files in action by running:
npm run serve
And, visiting http://0.0.0.0:8301/
When developing this project you can run the following command to listen to
changes in the src/js/*js and src/sass/*scss folders and build them into the
/build folder.
npm run watch
Before submitting your pull request, run the linters, which checks both the JS and Sass for errors.
npm run test
Code licensed LGPLv3 by Canonical Ltd.
With ♥ from Canonical
FAQs
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
GitHub postponed a new billing model for self-hosted Actions after developer pushback, but moved forward with hosted runner price cuts on January 1.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.