Introduction
We’re true believers in driving all developer self-service actions through the internal developer portal interface. No-one wants TicketOps, multi-step requests from DevOps and more. Yet one of the more persistent questions we get asked is about manual approval. Here’s how to do it in Port.
Manual approval use cases
Any time a developer makes a self-service action, the form created through the developer self-service action imposes boundaries and a limited set of fields/outcomes.
Let’s take a request for an ephemeral environment, limited by TTL. The TTL can be three or five days, but what happens if a developer needs ten days? Instead of not offering an option for manual approval and re-igniting the TicketOps cycle, the form can allow requesting ten days, but subject that to manual approval. Once the manual approval request is granted or declines, the developer gets an in-app notification, or messages in slack, microsoft teams or email.
Manual approval is also recommended when a self-service action might present risks, create excessive costs or require an extra pair of eyes according to the organization’s policy.
How it’s done in Port
When creating self-service actions for a specific blueprint in Port, you can also configure a manual approval step. When a user clicks on the execute button of an action that requires approval, the self-service action will be created with a “waiting for approval” status, and a manual approval notification will be sent to the approving user. The request with the WAITING_FOR_APPROVAL status will be visible in the Runs tab of the action.
Book a demo right now to check out Port's developer portal yourself
It's a Trap - Jenkins as Self service UI
How do GitOps affect developer experience?
It's a Trap - Jenkins as Self service UI. Click her to download the eBook
Learning from CyberArk - building an internal developer platform in-house
Example JSON block
Order Domain
Cart System
Products System
Cart Resource
Cart API
Core Kafka Library
Core Payment Library
Cart Service JSON
Products Service JSON
Component Blueprint
Resource Blueprint
API Blueprint
Domain Blueprint
System Blueprint
Microservices SDLC
Scaffold a new microservice
Deploy (canary or blue-green)
Feature flagging
Revert
Lock deployments
Add Secret
Force merge pull request (skip tests on crises)
Add environment variable to service
Add IaC to the service
Upgrade package version
Development environments
Spin up a developer environment for 5 days
ETL mock data to environment
Invite developer to the environment
Extend TTL by 3 days
Cloud resources
Provision a cloud resource
Modify a cloud resource
Get permissions to access cloud resource
SRE actions
Update pod count
Update auto-scaling group
Execute incident response runbook automation
Data Engineering
Add / Remove / Update Column to table
Run Airflow DAG
Duplicate table
Backoffice
Change customer configuration
Update customer software version
Upgrade - Downgrade plan tier
Create - Delete customer
Machine learning actions
Train model
Pre-process dataset
Deploy
A/B testing traffic route
Revert
Spin up remote Jupyter notebook
Engineering tools
Observability
Tasks management
CI/CD
On-Call management
Troubleshooting tools
DevSecOps
Runbooks
Infrastructure
Cloud Resources
K8S
Containers & Serverless
IaC
Databases
Environments
Regions
Software and more
Microservices
Docker Images
Docs
APIs
3rd parties
Runbooks
Cron jobs
Check out Port's pre-populated demo and see what it's all about.
No email required
Contact sales for a technical product walkthrough
Open a free Port account. No credit card required
Watch Port live coding videos - setting up an internal developer portal & platform
Check out Port's pre-populated demo and see what it's all about.
(no email required)