@bind annotation that ties a concept to a data source for reading or writing. The connection covers the source type, its options (host, credentials, file path, query, etc.), the database or path, and the table or file name.
For the complete syntax, every supported option, and end-to-end examples, see the full reference: Connecting to data sources.
Supported connectors
Files and object storage
Relational databases
Warehouses, query engines, and cloud
Graph, vector, and APIs
How a connection works
A connection binds a concept to a data source. The same@bind mechanism is used both to read source data into a concept and to write a concept’s results back to a destination.
url— connection URL (e.g.jdbc:postgresql://localhost:5432/prometheux)protocol— connection protocol (jdbc,odbc,jdbc-odbc,bolt)host— database hostport— database port (e.g.5432for PostgreSQL,7687for Neo4j)database— database nameusername/password— credentials
Example: reading a CSV file
Example: connecting to PostgreSQL
Managing credentials
Sensitive credentials (database usernames and passwords, AWS access/secret keys, API keys) can be supplied directly as options in the connection, which keeps everything self-contained in one place. For better security and reusability, credentials can instead be stored externally:- In a
px.propertiesfile, centralizing sensitive information without hardcoding it in each connection. - Via REST APIs for dynamic configuration management, setting individual credentials or updating many at once through API endpoints.
Learn more
- Connecting to data sources — full connector reference, every option, and complete examples for each source type
- Annotations —
@bind,@qbind,@mapping, and@model - SQL integration — querying bound sources with SQL in rule bodies

