Use this as a site Admin working with a developer when the site’s database already contains a content table that the CMS has not registered. Start in EmDash’s own Content Types screen in the site admin. Registration makes it manageable as a content type. It does not create a replacement table or fill it with new records.
Checked against the product’s code on 7 November 2026.
Check the existing table
Section titled “Check the existing table”Start with a table that is actually present in this site’s database. This workflow discovers existing content tables whose names start with ec_; it does not import an outside table or create one from a proposed name.
- Open EmDash’s own Content Types screen in the site admin. The screen lists the registered content types.
- Look for Unregistered Content Tables Found. When unregistered tables are found, this panel lists each collection identifier and item count.
- Check the identifier with the developer responsible for that table. Choose the real existing table rather than guessing from its display name.
A count of zero is not proof that the table is empty. Discovery can also return zero if the row count could not be read. Investigate an unexpected count before changing registration.
Register it in the screen
Section titled “Register it in the screen”Register takes effect directly. It has no second confirmation and no automatic Undo.
- Choose Register beside the intended table. On success, it leaves the unregistered panel and appears in the content types list.
- Open the new content type by its label. Its schema opens for review.
- Review the fields it needs with your developer before editing the existing records. Follow Content types and relations for the supported field controls and hosted limits.
Registration adds the collection’s CMS metadata. It does not change the existing content rows. It does not set up a public page for those records; review public addresses and field metadata separately.
If the screen reports a failure, read the reason and inspect the current list before retrying.
Ask the copilot instead
Section titled “Ask the copilot instead”This route is also Admin only. It gives you an approval card before registration and lets you supply singular and plural labels and a description.
- Open Copilot. The conversation is ready for your request.
- Type “Show this site’s unregistered content tables”. The request is a read, not a registration.
- Choose Send. The answer gives the exact collection identifier, database table name and row count for each returned result.
- Ask “Register the existing table for [collection identifier] as a content type”, using the exact identifier returned. Include your singular and plural labels if needed.
- Choose Send. The card asks Register this existing content table?
- Review the table and consequence. Leave it unregistered cancels the request.
- Choose Register the table only for the intended table. The receipt names the registered content type and directs you to review its fields.
- Open Content Types. Review the registered type before editing records.
The request checks the table again before registering. If it is no longer an unregistered table, nothing is changed by that request. If the discovery answer says it is incomplete, do not assume an omitted table is absent.
See Content types for the matching discovery and registration requests. On hosted Praxis, personal API tokens are read only; they are not an alternative way to perform this write.
Undo and deletion
Section titled “Undo and deletion”Registration has no automatic Undo in either route. Do not delete the content type to reverse registration: deleting a content type is a separate destructive action that also deletes its content and relationships. Review the registered type with your developer if it is not what you intended.
Your next step
Section titled “Your next step”With your developer, review the registered fields using Content types and relations before editing records. If you need a public list, follow List a collection on a page; registration itself does not create that page.