PIM
BuiltRendered from 46h-pim.md in the public repository. Edits belong there.
PIM is a hosted client's own application for its account, its website and its mail, run on the client's instance against the ports the client's binding permits.
| Package | pim, version 0.5.1 |
| Kind | App. Hub tool pim_overview |
| For | The client who owns the instance. It is not the operator's view of the client |
| Own sandbox | Yes. Its namespace is copied from the instance's own core anchor at install ("", inherit) |
| Ports | Employs email_provider and site_hosting |
| Preview | Demo |
What it turns on
Installing exposes two tools, pim_overview (the hub) and pim_design, and provisions the app sandbox with two documents:
contacts(archetypenatural_entity_profile): people who signed up on the client's website. Same archetype as a Quiar client, different record.donations(archetypeinvoice): gifts given through the client's website.
The hub draws these tabs, in this order. A tab whose port is not bound states that it is not, and why, instead of showing an empty table.
| Tab (id) | Drawn when | Content |
|---|---|---|
Home (home) | Always; default | What the account holds and what its site and records use against the plan's storage |
Authoring (design) | site_hosting | pim_design. Two views: Writing (a gallery of articles; each article's page carries its versions and the publish, retire and send actions) and Contacts (the website's sign-ups, each switchable on or off the mailing list) |
Design (site) | site_hosting | The pages the site serves and the images it uses |
Resources (resources) | Always | Images, documents and profiles kept beside the site |
Analytics (analytics) | site_hosting | Visits to the instance's own site |
Donations (donations) | The instance keeps a donations document | Gifts given through the site |
Email (email) | email_provider | The instance's addresses and where each forwards; sub-tabs Addresses, Spam, Held |
Domain (domain) | The account keeps a domain | The domain and what is served at it |
Payment (payment) | Always | What the site has taken, and the payment processor account connected to it |
Each tab can be switched off per instance. The switches are read from the instance's pim_features document and, where none exists, from installed_packages.pim.installs[*].features in its configuration. Unknown ids are ignored. The retired ids newsletter, contacts and storage are not reused.
What it reads and writes
- Article bodies are not datum documents. A MOS writing holds 4,096 printable-ASCII characters and articles routinely exceed that, so the writing lives in the site and is read and written through
site_hosting. - Port status (bound, granted) is read from the instance's configuration. PIM does not probe a port to draw a tab.
- PIM's tools declare no datum writes of their own; their effects are the port operations below.
Ports
| Port | Operations declared |
|---|---|
email_provider | mailbox.list, message.fetch, alias.list, forwarding.set, identity.verify_request, identity.remind, held.deliver |
site_hosting | page.list, article.publish, article.retire, analytics.read, content.replace, asset.upload, article.send, contact.set_subscription |
On an instance hosted by FND both are filled by FND Service. PIM employs held.deliver rather than message.forward, so it can release held mail without being able to forward mail anywhere.
Status
Built and published. A demo exists.
Source
micyte/tools/pim_overview.py: the hub and its tab table (FEATURES)micyte/tools/pim_design.py: Authoringmicyte/tools/_packages.py:_pim_package