d718c5a372
CI / compile_and_lint (push) Failing after 0s
CI / docker_build (linux/amd64, -linux-amd64-duckdb, duckdb) (push) Failing after 0s
CI / docker_build (linux/arm64, -linux-arm64, minimal) (push) Failing after 2s
CI / docker_build (linux/arm64, -linux-arm64-duckdb, duckdb) (push) Failing after 1s
CI / docker_build (linux/amd64, minimal) (push) Failing after 1s
CI / test (, sqlite, sqlite::memory:) (push) Has been skipped
CI / test (mssql, mssql, mssql://root:Password123!@127.0.0.1/sqlpage) (push) Has been skipped
CI / test (mysql, mysql, mysql://root:Password123!@127.0.0.1/sqlpage) (push) Has been skipped
CI / test (oracle, oracle, Driver=Oracle 21 ODBC driver;Dbq=//127.0.0.1:1521/FREEPDB1;Uid=root;Pwd=Password123!) (push) Has been skipped
CI / test (postgres, odbc, Driver=PostgreSQL Unicode;Server=127.0.0.1;Port=5432;Database=sqlpage;UID=root;PWD=Password123!, true) (push) Has been skipped
CI / test (postgres, postgres, postgres://root:Password123!@127.0.0.1/sqlpage) (push) Has been skipped
CI / playwright (push) Has been skipped
CI / docker_build (linux/arm/v7, -linux-arm-v7, minimal) (push) Failing after 0s
CI / hurl_examples (push) Failing after 8s
deploy website / deploy_official_site (push) Failing after 1s
CI / hurl (${{ matrix.example }}) (push) Has been skipped
CI / docker_push (duckdb) (push) Has been cancelled
CI / docker_push (minimal) (push) Has been cancelled
CI / windows_test (push) Has been cancelled
126 lines
3.9 KiB
SQL
126 lines
3.9 KiB
SQL
-- Insert the http_header component into the component table
|
|
INSERT INTO component (name, description, icon)
|
|
VALUES (
|
|
'cookie',
|
|
'
|
|
Sets a cookie in the client browser, used for session management and storing user-related information.
|
|
|
|
This component creates a single cookie. Since cookies need to be set before the response body is sent to the client,
|
|
this component should be **placed at the top of the page**, before any other components that generate output.
|
|
|
|
After being set, a cookie can be accessed anywhere in your SQL code using the `sqlpage.cookie(''cookie_name'')` pseudo-function.
|
|
|
|
Note that if your site is accessed over HTTP (and not HTTPS), you have to set `false as secure` to force browsers to accept your cookies.',
|
|
'cookie'
|
|
);
|
|
-- Insert the parameters for the http_header component into the parameter table
|
|
INSERT INTO parameter (
|
|
component,
|
|
name,
|
|
description,
|
|
type,
|
|
top_level,
|
|
optional
|
|
)
|
|
VALUES (
|
|
'cookie',
|
|
'name',
|
|
'The name of the cookie to set.',
|
|
'TEXT',
|
|
TRUE,
|
|
FALSE
|
|
),
|
|
(
|
|
'cookie',
|
|
'value',
|
|
'The value of the cookie to set.',
|
|
'TEXT',
|
|
TRUE,
|
|
TRUE
|
|
),
|
|
(
|
|
'cookie',
|
|
'path',
|
|
'The path for which the cookie will be sent. If not specified, the cookie will be sent for all paths.',
|
|
'TEXT',
|
|
TRUE,
|
|
TRUE
|
|
),
|
|
(
|
|
'cookie',
|
|
'domain',
|
|
'The domain for which the cookie will be sent. If not specified, the cookie will be sent for all domains.',
|
|
'TEXT',
|
|
TRUE,
|
|
TRUE
|
|
),
|
|
(
|
|
'cookie',
|
|
'secure',
|
|
'Whether the cookie should only be sent over a secure (HTTPS) connection. Defaults to TRUE.',
|
|
'BOOLEAN',
|
|
TRUE,
|
|
TRUE
|
|
),
|
|
(
|
|
'cookie',
|
|
'http_only',
|
|
'Whether the cookie should only be accessible via HTTP and not via client-side scripts. If not specified, the cookie will be accessible via both HTTP and client-side scripts.',
|
|
'BOOLEAN',
|
|
TRUE,
|
|
TRUE
|
|
),
|
|
(
|
|
'cookie',
|
|
'remove',
|
|
'Set to TRUE to remove the cookie from the client browser. When specified, other parameters are ignored.',
|
|
'BOOLEAN',
|
|
TRUE,
|
|
TRUE
|
|
),
|
|
(
|
|
'cookie',
|
|
'max_age',
|
|
'The maximum age of the cookie in seconds. number of seconds until the cookie expires. If both Expires and Max-Age are set, Max-Age has precedence.',
|
|
'INTEGER',
|
|
TRUE,
|
|
TRUE
|
|
),
|
|
(
|
|
'cookie',
|
|
'expires',
|
|
'The date at which the cookie expires (either a timestamp or a date object). If not specified, the cookie will expire when the browser is closed.',
|
|
'TIMESTAMP',
|
|
TRUE,
|
|
TRUE
|
|
),
|
|
(
|
|
'cookie',
|
|
'same_site',
|
|
'Whether the cookie should only be sent for requests originating from the same site. See owasp.org/www-community/SameSite. `strict` is the recommended and default value, but you may want to set it to `lax` if you want your users to keep their session when they click on a link to your site from an external site.',
|
|
'TEXT',
|
|
TRUE,
|
|
TRUE
|
|
);
|
|
-- Insert an example usage of the http_header component into the example table
|
|
INSERT INTO example (component, description)
|
|
VALUES (
|
|
'cookie',
|
|
'Create a cookie named `username` with the value `John Doe`...
|
|
|
|
```sql
|
|
SELECT ''cookie'' as component,
|
|
''username'' as name,
|
|
''John Doe'' as value
|
|
FALSE AS secure; -- You can remove this if the site is served over HTTPS.
|
|
```
|
|
|
|
and then display the value of the cookie using the [`sqlpage.cookie`](functions.sql?function=cookie) function:
|
|
|
|
```sql
|
|
SELECT ''text'' as component,
|
|
''Your name is '' || COALESCE(sqlpage.cookie(''username''), ''not known to us'');
|
|
```
|
|
'
|
|
);
|