Penv Cloud
Start free
Docs
Referencesince cloud@2026-09-10

The console

Console sidebar rows and the permission each needs, what the Overview shows, how a missing permission renders, and terminal sign-in approval.

The console is where you work with Penv Cloud, the hosted provider for penv: your projects and values, machine identities, the audit record, and workspace settings.

Machine Identities, Integrations and Settings are groups with no page of their own. Slugs: roles and permissions.

RowPathShown with
Overview/dashboardany permission
Projects/projectsproject:read
Machine Identities: All Identities/identitiesmachine:read
Machine Identities: Connect a Platform/identities/connectmachine:create
Integrations: Connections/integrationsintegration:read
Integrations: Dynamic Engines/integrations/dynamicdynamic:read
Integrations: Providers/integrations/providersintegration:read
Audit Log/auditaudit:read
Billing/settings/billingbilling:read
Encryption/settings/encryptionorg:read
Settings: Organization/settings/organizationorg:read
Settings: Members/settings/membersmember:read
Settings: Roles/settings/rolesrole:read
Settings: Security/settings/securityorg:read
Settings: Single Sign-On/settings/ssosso:read
Settings: Danger Zone/settings/dangerorg:read

We highlight the longest matching path: /identities/connect highlights Connect a Platform, not All Identities.

Your account menu at the bottom of the rail opens a project picker: search, your readable projects, the current project's environments, New Project, View All Projects. Only Free shows a Projects meter there, prompting an upgrade at four fifths of the limit.

Overview

Path: /dashboard, the first page you see after sign-in. Each part reads only what your permissions allow; a figure your role does not cover reads Not in your role, and one we could not read shows a dash, not a zero.

First visit

Until your workspace holds a value, you see Welcome to Penv Cloud, five steps and your plan. The next step is raised into a card with the one button that does it:

StepButtonNeeds
Create a ProjectCreate Projectproject:create
Create an EnvironmentCreate Environment, in the newest projectenvironment:create
Set Your First SecretSet a Secret, opens Set Parameterssecret:write
Create a Machine IdentityCreate Identity, preset to the new environment and Secrets Readermachine:create
Connect penvThe schema header and the penv run commandnone

A step your role cannot do says so instead of showing a button. The last step is done once a machine reads with its credential. Your plan lists the plan, projects and members against its limits, and machine identities, which are free on every plan.

Established workspace

  • The header counts the things to review, each marked amber below it.
  • New Identity and New Project sit at its right, when your role can create them.
  • Until a machine has read, a row names the next setup step.
  • For Connect penv that row starts collapsed; Show how opens the schema header and the penv run command.
PartContentNeeds
ProjectsCount against the Free limit, and environmentsproject:read
MembersActive members against paid seats, or the Free seat limitmember:read
MachinesLive identities, and credentials that expire within 14 days with no newer credential to take overmachine:read
ValuesKeys holding a value, and how many are due for rotation; the link opens the environment with the mostproject:read; the due count needs secret:write, and without it the line counts the projects holding values
Machine reads, 7 daysReads served to machines per day, and how many we refusedmachine:read
Project cardsThe four most recently changed projects: environments, values, keys due, last changeproject:read
ActivityThe newest audit entries, with consecutive reads by one actor in one environment folded into one line, then identities with no read in 30 daysaudit:read; idle identities need machine:read
Waiting on youOpen change and access requests you may decide, open secret scanning findings, syncs whose latest run failedApprovals: secret:write there (secret:delete for a removal), or member:role_assign there for access; scanning and syncs: integration:read
Delivery, last 7 daysReads per day, the slowest actions by the time we took, the newest CI runsDelivery Insights on your plan, and machine:read; a run's repository needs audit:read

Activity leaves out sign-ins and sign-outs, organization switches, step-up checks, machine credential exchanges, and reads and exports of the audit log; the audit log has them. A credential, trust or keypair a person adds does appear.

Showing Activity is itself a read of the log, which we record as audit.read with via: overview.

The footer states the encryption every plan gets: each value sealed with AES-256-GCM and bound to its full address. It then names who holds the wrapping key, in the words the Encryption page uses:

Key stateFooter says
Our keyWe hold the wrapping key
Your KMS keyYour key wraps every value
Re-wrapValues are moving onto your key, or back to ours
Your key revokedWe refuse reads and writes
Key state unreadableNothing about custody, rather than guess

Missing permissions

SituationWhat you see
A row needs a permission you do not holdWe hide the row
Every row in a group is hiddenWe hide the group
You open the page by path anyway"You don't have access to this" in the console shell, naming the missing permission
Your grant covers one project onlyThe row stays; the page shows that project
You hold no permission anywhere in the workspaceWe redirect you to /no-access, listing your other workspaces

We read your permissions from the database on every request. Removing a role takes effect on the next click, not the next sign-in.

Terminal sign-in approval

Path: /device. penv login prints an eight-character code, valid for ten minutes, and opens this page. Type the code your terminal shows; we never fill it in from a link, so comparing the two is how you know the terminal is yours. Once you enter it, you see the name the terminal gave itself (anyone starting a sign-in can choose it, so we reduce it to plain words and say so), the request's source address, and when it asked. You choose which workspace the credential may reach: the one you are signed in to by default, any other you belong to, or all of them. The credential we mint lasts 30 days from its last use, and at most 90 days. A workspace that requires single sign-on or two-factor accepts it only if you approved it from a session that met that requirement.

Approving requires step-up when your account has an authenticator (security and MFA); denying never does, so you shut down an unrecognized code in one click.

ActionNeedsStep-upRecorded as
Approve a terminala signed-in sessionYesdevice.approved
Deny a terminala signed-in sessionNodevice.denied

We write each entry in the workspace you chose, or once per workspace you belong to when you chose all of them.

You answer agent reveal requests at /approvals/[id]: approve a reveal.

Next: projects and environments.