What is your developer-dependent CMS actually costing you? Calculate your costs and get a full report
What is your developer-dependent CMS actually costing you? Calculate your costs and get a full report
Content Architecture
Control who can add each component to a page, and which sitemaps, page models and zones it can go in. You can also disable a component without deleting it. In private beta.
Private beta. Component visibility is available only on instances taking part in the beta, and it may change before it's released to everyone. If you'd like to join the beta, contact your Customer Success Manager or Agility Support.
Component visibility lets you decide, for each component model, who can add it to a page and where it can go. Use it to keep a page's structure the way you designed it: a hero component that only goes in the hero zone, a component only your design team should place, or a component that belongs to one site and not another. You can also disable a component so nobody can add it, without deleting the model or touching the pages that already use it.
Visibility rules only apply when a component is placed:
A component that's already on a page is never affected. It keeps rendering on your site, and editors can keep editing it, reordering it within its zone, and removing it. A rule only stops a new placement, so adding a rule never breaks an existing page, and re-saving a page that already holds a component the rule wouldn't allow still works.
Nothing changes on an instance until someone sets a rule. A component with no rules can be added by anyone who can edit the page, anywhere, just as before.
Administrators, Managers and Designers can change visibility. The component models list shows a Visibility column, so you can see at a glance which components are Disabled or Restricted, and hover for a summary of each rule.
| Option | What it means |
|---|---|
| Anyone who can edit the page | The default. Anyone who can edit the page can add the component. |
| Only these people | Only the people you choose can add it. Choose any of Designers, Managers, specific Users and specific Teams. Administrators are always included. |
| Nobody (disabled) | Nobody can add or copy the component, Administrators included, and it's hidden from the component list. See Disable a component. |
Designers and Managers mean anyone who holds that permission, whatever their role is called on your instance. Someone who belongs to a chosen team can add the component, including when the team gives them their access to the instance.
Two settings control where a component can be placed. A component must match both.
Sitemaps. Choose All sitemaps, or Only these sitemaps and pick them. A page belongs to the sitemap at the top of its page tree.
Page models and zones. Choose Anywhere, or Only these page models and zones. Pick a page model to allow all of its zones, or pick only the zones you want. For example, to keep a hero component in the hero zone, pick just the Hero zone of each page model that has one.
The "where" rules apply to everyone, Administrators included, because they're about the page's structure, not about who's editing it.
If a sitemap, page model or zone you picked is later deleted, the rule shows it as (deleted). A deleted target never matches. If every target in a list has been deleted, the component can't be placed anywhere until you update the rule.
Choose Nobody (disabled) under Who can add this component to retire a component without deleting it. This is useful when several instances share the same models (for example, when you sync them with the CLI) and a component doesn't apply to one of them.
When a component is disabled:
To use it again, choose Anyone who can edit the page or Only these people.
The page editor only offers what a rule allows:
If a placement is refused, the message says why, using one of these sentences:
For the editor's view of this, see Why can't I add a component?.
The same rules are checked on the server, so they apply however a page is saved: the Manager App, the Management API, the Management SDK, the MCP server and the Agility CLI.
Saving a page. A page save that places a component the rules don't allow is refused with a 400, and the message is one of the sentences above. The whole save is refused, so none of that save's other changes to the page are kept. As in the Manager App, a placement that's already on the page is never re-checked. The check is made as the user the token belongs to, so a script running with a non-Administrator's Personal Access Token can be refused by a "who" rule.
Reading and setting rules. The Management API has three endpoints, documented in the API reference:
GET /api/v1/instance/{guid}/model/availability returns the rules of every component model that has any.GET /api/v1/instance/{guid}/model/{id}/availability returns one component model's rules. A null addableBy means anyone who can edit the page, and a null allowedIn means anywhere.POST /api/v1/instance/{guid}/model/{id}/availability saves them. addableBy and allowedIn are saved separately: leave a group out (or send null) to keep it, send an object to replace it, or send one whose lists are all empty to remove the restriction. Users, teams, sitemaps, page models and zones are matched by ID, or by email address or name when the ID isn't found, so a rule can be copied between instances. If any target can't be matched, nothing is saved and the 400 lists them.Anyone on the instance can read the rules. Saving them needs the same permission as saving a model.
Disabling a component is done in the Visibility pane. Through the Management API, a model's isVisible setting only applies when the model is created; saving an existing model never changes it.
Visibility settings belong to each instance:
agility sync. Set them on each instance.