Tables & Columns
Where the rows live. Everything else in stepbase is reading them.
Column types
| Type | Holds | Notes |
|---|---|---|
| Text | Any string | Long or short; the grid wraps |
| Number | A number | Format as currency or a percentage — display only, filters see the number |
| Date / Datetime | A point in time | Chart by day, week, month, quarter or year |
| Checkbox | True or false | The only thing a board gate can read |
| Dropdown | One of a fixed set | Its options are the lanes a board groups by |
| File | Uploads | Works on anonymous form submissions too |
| Linked record | A row in another table | Stores the row, not a copy of its name |
| Rollup | A number across a link | Count, sum, min or max — keeps itself current |
| Lookup | A column borrowed across a link | Read-only where it lands |
| Formula | A computed value | Expression over the row's own columns |
Linking tables
A linked-record column points at a row in another table and stores its id. That is what makes a rollup possible: link every purchase order to a vendor, and the vendor's Committed Spend adds itself up from the orders.
Important: A dropdown fed from a table stores whatever you tell it to store. If the value column is the row id, you get a real link; if it is the name, you get a copy of a label that will not follow a rename.
Views
Save a set of filters, a sort and a search as a named view, and pin it to the sidebar. A view can also be a board rather than a grid, which is why "Deals" and "Pipeline" are one sidebar entry rather than two things people have to work out the difference between.
- Views are shared, not personal — a bundle ships them and everyone who can open the table sees them.
- Every reference in a view is a column slug, so renaming a table never breaks one.
Row and column policies
The app grant decides whether you reach a table. Policies decide what you see inside it.
- A row policy is an expression over the viewer: "owner is me", "department matches mine".
- A column policy hides or read-onlys one field for the people it names.
- The default inside an app is full access. A narrower policy is a deliberate act, not something you have to remember to switch off.
- A table carrying a row policy cannot be served on a public link at all — there is nobody to evaluate it against.
Getting data in and out
- Import a CSV into a new table, or into an existing one by mapping columns.
- Export what is there.
- A Form can write into a table you already own, with the mapping stated field by field — see the Form Builder.
- Machine-owned columns (the status a Flow writes) refuse direct edits, so a person cannot desync the row from the process.
Note: Tables are native. stepbase does not read an existing Postgres, MySQL, Airtable, Notion or Google Sheets — other systems connect over HTTP connectors.