# Access filters

> Access filters decide which rows and columns of a table each person can reach. Learn how to create them and route each group to the right one.

An access filter sits on a table and decides which rows and which columns are in scope. Every view, dashboard widget and export reads the table through an access filter. Nothing on screen reaches a table directly.

Use access filters when different people must see different parts of the same table. For example, technicians only see open jobs in their own branch, while the owner sees everything.

> **Note:** In a few settings screens, access filters are called base views. Both names mean the same thing.

## The Everything filter

Every table starts with an access filter called **Everything**. It returns every row and every column.

Everything is part of the table itself. It cannot be renamed, deleted or given row filters. To limit rows, create another access filter.

## Where to find access filters

Open a table. Its access filters appear as tabs below the table's name, starting with **Everything**. They also appear as rows under the table in the **Database** section of the sidebar.

Click a tab to switch between them. The header always shows the table's name, icon and cover, not the filter's.

## What an access filter controls

- **Which rows** are in scope. You set this with filter conditions, combined with "and" or "or", including nested groups of conditions.
- **Which columns are hidden.** A hidden column is left out of reading, editing and exports for everyone who uses this access filter.
- **Which columns are read-only.** A column can be editable in one access filter and read-only in another. Hidden columns are always read-only.
- **Which groups are routed here.** Members of the groups you assign land on this access filter automatically.

## Create an access filter

1. Open the table.
2. Choose the **+** at the right end of the tab bar.
3. Enter a name that describes the slice, for example `Open jobs` or `Branch North`.
4. Choose **Create**.
5. Open **Filter** and add the conditions that define which rows belong in it. Use **Add condition** for a single rule and **Add condition group** to combine rules.
6. Choose **Save for everyone** so the conditions apply to everyone using this access filter.

A filter that matches "all of the following" only keeps rows where every condition is true. A filter that matches "any of the following" keeps rows where at least one is true.

## Hide columns

1. Open the access filter and open its view settings.
2. Choose **Property visibility**.
3. Hide the columns this group of people should not see.

Hiding a column here also hides it in every view built on this access filter. Before the change is saved, SAPUGO shows which views are affected.

## Route groups to an access filter

Routing sends each person to the right access filter based on their [groups](/docs/groups).

1. Open the access filter and open its view settings.
2. Choose **Permissions**.
3. Under **Group Routing**, choose **Add group routing rule**.
4. Select a group. Add more groups if needed.
5. Save your changes.

### Priority

Access filters work like an ordered list. To change the order, drag the tabs (or the rows in the sidebar). The access filter at the top has the highest priority.

When a person opens a view that uses routing, SAPUGO goes down the list and picks the first access filter assigned to one of their groups. A person in several groups still gets exactly one access filter: the highest one that matches.

If no assignment matches, the person gets the first access filter they are allowed to read. On a new table, that is **Everything**.

> **Warning:** Access filters have their own access rules. A person who cannot read an access filter is never routed to it. Make sure the groups you route can read the filter. See [Access](/docs/access).

## Use an access filter in a view

When you create a [view](/docs/views), you choose how it gets its access filter.

**Fixed.** Under **Parent Data View**, pick one access filter. Everyone who can open the view sees that slice, whatever groups they are in. Use this for screens meant for one role.

**Routed.** Turn on **Resolve parent base view dynamically via group routing** and pick the table. Each person gets the access filter their groups are routed to. Use this when several roles share the same screen but must see different rows.

Views can only narrow what their access filter allows:

- A view's own filter is applied on top of the access filter's conditions.
- A view can hide more columns or make more columns read-only, but it cannot show a hidden column or make a read-only column editable.

## What an access filter is not

An access filter is not a display preference. If two people should see the same rows in a different order, create two views on the same access filter, or let each person change the sort. If two people must not see each other's rows, create two access filters.

An access filter is also not the screen your team works in. You can open it as a table, but the screens you build for a team are the views on top of it: the board, the calendar, the filtered list.

## Rename, change the icon or delete

Right-click a tab to:

- **Rename** the access filter.
- Choose an **Icon** for it.
- **Delete Access Filter**. This removes the filter only. The table's records are not deleted.

## Plan your access filters

For each table, list the access filters you need in priority order. For each one, write down:

- its name,
- which rows it contains, in plain words,
- which columns are hidden or read-only,
- which groups are routed to it.

| Access filter | Rows | Hidden columns | Groups |
| --- | --- | --- | --- |
| Everything | All jobs | None | Owners, Office |
| Branch North | Jobs where Branch is North | Price | Technicians North |
| Branch South | Jobs where Branch is South | Price | Technicians South |

Keep **Everything** for the people who should see every row. Add a narrower access filter for each role that must be confined. Do not create an access filter only to change the sort order.

## Related

  - [Views](/docs/views): Build working screens on top of an access filter.
  - [Groups](/docs/groups): Create the groups you route to access filters.
  - [Access](/docs/access): Control who can open each object.
  - [Tables](/docs/tables): Set up the tables your access filters sit on.

---

Source: https://community.sapugo.app/docs/base-views
