chore: import upstream snapshot with attribution
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
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
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
-- 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'');
|
||||
```
|
||||
'
|
||||
);
|
||||
Reference in New Issue
Block a user