<commit_before>---
layout: post
title: "Cloud Foundry Portal"
subtitle: "A Single Pane of Glass for Cloud Foundry Applications"
description: "Announcing CF-Portal, a non-admin UI for open source Cloud Foundry"
header-img: "img/mon-maui.jpg"
author: <NAME> 
githubProfile : "mjseid"
avatarUrl : "https://avatars2.githubusercontent.com/u/4573660?v=3"
tags: [open source, cloudfoundry, cf-portal]
---

The first segment of our open source CF toolbox series introduces [CF-Portal](https://github.com/MonsantoCo/cf-portal), a basic read-only view into your cloud foundry application landscape.  CF-Portal was one of the first applications we made for our CF toolbox, since unlike the branded CF offerings the community project lacks any pre-packaged UI.

## Why not re-use an existing solution?
There are open source UI's available in the community, most notably the [admin-ui](https://github.com/cloudfoundry-incubator/admin-ui) project which we do utilize for our environments.  But the admin-ui project is truly an admin interface, requiring logins and admin level privileges to interact with the system.  CF-Portal is meant to supplement the admin-ui project by providing an anonymous view into your cloud foundry application landscape for consumption by a novice CF user.

## Does cloud foundry even need a UI?
The [cf cli](https://github.com/cloudfoundry/cli) is powerful, extensible, and for a large chunk of cf developers it's their sole interaction with the system.  But there are still use cases where having a UI comes in handy. Sometimes we need to expose data which can be accessed by non developers, for example people who don't have an account in CF such as release managers or a level one support agent.  And even with access to the cf cli some tasks such as searching or aggregating output are difficult and would require elevated permissions.

## Design Requirements
When creating CF-Portal we wanted to fulfill three basic requirements

* Anonymous Access - The portal should be available without requiring user authentication.  Because of this we also must ensure that the application displays only non-sensitive data and has read-only capabilities.
* Searchable View of the Application Landscape - The portal should allow any user to view how many applications are in any given (cf|org|space) as well as quickly determine which org and space a specific application belongs to.
* Bare Bones Troubleshooting - The portal should quickly allow users to determine the state of an application such as if it's up or down and how long it's been running.  It should also show basic audit information such as recent application logs and audit events.

## The Result
The portal has two views, a summary view of all applications deployed to the cloud foundry environment and a detail view for each app showing some basic application specific stats.  The data for the summary view is gathered every 5 minutes and cached locally for best responsiveness.  The top right corner includes a search bar to quickly find the high level details of an application and clicking on any row allows you to drill down to the detail page for that application. If you're used to the cf cli, its similar to what you'd get from running _cf apps_ in every space.  


![Home Page](/img/cfportal-home.png)

The detail page shows real-time information about the application in question, similar to what you would see by running _cf app <app-name>_.  In addition it collects recent logs and audit events which you might see by issuing a few more cli commands: _cf events <app-name>_ & _cf logs <app-name>_.

![Detail Page](/img/cfportal-detail.png)

If you're using cloud foundry and you have the need for an intuitive UI, please jump over to the project repo and give [CF-Portal](https://github.com/MonsantoCo/cf-portal) a try.  And as always we encourage comments and pull requests to continue making our tools better.<commit_msg>incorporate suggested changes into cf-portal post<commit_after>---
layout: post
title: "Cloud Foundry Portal"
subtitle: "A Single Pane of Glass for Cloud Foundry Applications"
description: "Announcing CF-Portal, a non-admin UI for open source Cloud Foundry"
header-img: "img/mon-maui.jpg"
author: <NAME> 
githubProfile : "mjseid"
avatarUrl : "https://avatars2.githubusercontent.com/u/4573660?v=3"
tags: [open source, cloudfoundry, cf-portal]
---

This segment of our open source Cloud Foundry (CF) toolbox series introduces [CF-Portal](https://github.com/MonsantoCo/cf-portal), a basic read-only view into your Cloud Foundry application landscape.  CF-Portal was one of the first applications we made for our CF toolbox, since unlike the branded CF offerings, the community project lacks any pre-packaged UI.

## Why not re-use an existing solution?
There are open source UI's available in the community, most notably the [admin-ui](https://github.com/cloudfoundry-incubator/admin-ui) project, which we do utilize for our environments.  But the admin-ui project is truly an admin interface, requiring logins and admin level privileges to interact with the system.  CF-Portal is meant to supplement the admin-ui project by providing an anonymous, read-only view into your Cloud Foundry application landscape for consumption by CF end-users.

## Does cloud foundry even need a UI?
The [CF CLI](https://github.com/cloudfoundry/cli) is powerful, extensible, and, for a large chunk of CF developers, it's their sole point of interaction with the system.  But there are still use cases where having a UI comes in handy. Sometimes we need to expose data which can be accessed by non-developers, for example people who don't have an account in CF such as release managers or a level one support agent.  And even with access to the CF CLI, some tasks such as searching or aggregating output are difficult and would require elevated permissions.

## Design Requirements
When creating CF-Portal we wanted to fulfill three basic requirements

* Anonymous Access - The portal should be available without requiring user authentication.  Because of this we also must ensure that the application displays only non-sensitive data and has read-only capabilities.
* Searchable View of the Application Landscape - The portal should allow any user to view how many applications are in any given (CF|org|space) as well as quickly determine which org and space a specific application belongs to.
* Bare Bones Troubleshooting - The portal should quickly allow users to determine the state of an application such as if it's up or down and how long it's been running.  It should also show basic audit information such as recent application logs and audit events.

## The Result
The portal has two views, a summary view of all applications deployed to the Cloud Foundry environment and a detail view for each app showing some basic application specific stats.  The data for the summary view is gathered every 5 minutes and cached locally for best responsiveness.  The top right corner includes a search bar to quickly find the high level details of an application and clicking on any row allows you to drill down to the detail page for that application. If you're used to the CF CLI, its similar to what you'd get from running `cf apps` in every space.  


![Home Page](/img/cfportal-home.png)

The detail page shows real-time information about the application in question, similar to what you would see by running `cf app <app-name>`.  In addition it collects recent logs and audit events which you might see by issuing a few more CLI commands: `cf events <app-name>` & `cf logs <app-name>`.

![Detail Page](/img/cfportal-detail.png)

If you're using Cloud Foundry and you have the need for an intuitive UI, please jump over to the project repo and give [CF-Portal](https://github.com/MonsantoCo/cf-portal) a try.  And as always we encourage comments and pull requests to continue making our tools better.
{'fraction_non_alphanumeric': 0.05348542458808619, 'fraction_numerical': 0.0025348542458808617, 'mean_word_length': 4.529782761037141, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 10, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5370537', 'n_tokens_mistral': 1974, 'n_tokens_neox': 1910, 'n_words': 1159}