Glossary

Walkable terminologies

filter

s-expression can be used to describe the condition that end up under the WHERE statement of the generated sql string. Such filters can be one-off (which is specified by the EQL consumer) or permanent (specified in the registry).

registry

configuration to describe all data available to API consumer (namely roots, idents, true columns, pseudo columns, joins and aggregators) as well as filters constraints to access each of them. Designing the registry can be seen as creating a bunch of SQL views so that the data endpoints can be freely consumed later without thinking too much about implementation details.

s-expression

clojure expressions that follow walkable specifications to generate equivalant sql strings. These strings are automatically parameterized, so they are safe from SQL injection attacks.

permanent filter

a filter designed by API author to filter out undesired entities, usually for security reason. They are declared in the registry therefore they are not visible to EQL consumers.

one-off filter

EQL consumers can specify a filter to narrow down further the entities under a root or join. Such filters are placed in the said root or join’s query parameters.

root

top-level data endpoint. Normal roots offer some column and join under them, while root aggregators return a single value.

join

relationships between two tables. Conceptually similar to SQL joins, but returns a tree structure instead of a flat table.

aggregator

single value produced with min, max, count etc. Can be either a root or a join.

column

either a true column or a pseudo column

true column

a real column in the database. Denoted with a qualified keyword, for example :foo/bar-baz means the column bar_baz in the table foo. The rule of mapping from such keyword to their real column can be tweaked by customizing the emitter.

pseudo column

a property of an entity whose value is derived from true columns and/or variables using walkable s-expressions.

pagination

offset, limit and order-by. Defaults can be set in the registry.

emitter

a set of rules that dictate how to produce sql strings that conforms a specific SQL flavor!

variable

a placeholder in an s-expression denoted with a Clojure symbol and how to compute its value each time it is used.

Pathom terminologies

env

the "enviroment" hash-map that is passed as argument to query executer. Usually contains database instances and current request’s authentication information.

query

query in the EQL language to denote data requirements.

parser

a function that execute EQL queries and returns data. Can be either sync or async.

ast

Abstract Syntax Tree equivalant of an EQL query

query parameters

a map describing extra information. Can be used for alias, filters and pagination.

property

a keyword describing available data. In Walkable’s case, it can be either a root, join, true column, pseudo column or aggregators.

join

a relationship between two entities. Do not confuse with SQL’s JOIN statements.

ident

a convention in Fulcro/Pathom to access single entity by a key/value pair (usually a primary key)

entity

an entity in walkable’s case is a record in a database table.