Giter VIP home page Giter VIP logo

bosphorus's Introduction

Project Bosphorus

Background

This project is aimed at providing a custom portal framework for vRealize Automation (vRA) along with a reference implementation. It is intended for advanced users/developers of vRealize Automation who need to provide an alternate User Interface or who need to integrate vRA into a custom portal.

Bosphorus is written in Java using Spring MVC, Spring Boot, Thymeleaf and jQuery. The reference implementation uses jQuery Mobile as a UI framework. The UI framework can very easily be swapped out for another jQuery-based framework.

The choice of Java/Spring/Thymeleaf/jQuery was deliberate, as it seems to be a combination that's very commonly used for Enterprise portals at the time of writing.

Why the name?

I wanted a name that was related to the concept of a portal. If you paid attention during geography class, you know that the Bosphorus Strait, located in Turkey is the portal between the Mediterranean Sea and the Black Sea. Plus is sounds cool.

Design goals

  • Allow web coders to develop portals with no or little knowledge of vRA
  • Implement on a robust platform that's likely to be used in an enterprise setting.
  • Easy to install.
  • Extremely small footprint.
  • Extremely fast startup time.
  • Avoid cross-platform AJAX issues.

Features

Bosphorus was designed to be have a very small footprint, start and run very fast. At the same time, Bosphorus offers many advanced features such as live updates using long-polling and lazy-loading UI-snippets using AJAX.

Installation

Installing from binary

I will try to keep the binaries reasonably up to date, but if you want to be sure you have the latest, I strongly suggest you build Bospohorus from source. It's easy!

  1. Make sure you have java 1.8.x installed. Bosphorus will NOT run on java versions lower than 1.8.0!
  2. Download the binary from here: https://drive.google.com/file/d/0BymSAYUyWEPuN2xQbVZqQjVweTg/view?usp=sharing
  3. Run the downloaded JAR as a self-executing JAR. Specify the URL for your vRA host as the --vra-host parameter: java -jar bosphorus-0.0.1.jar --vra-url=https://<your vra host>
  4. The portal should now be accessible on http://yourhost:8080/
  5. Log in using your vRA credentials. No domain ID is necessary.

Building from source

If you want the latest and greatest version of Bosphorus, you should build it from source. This guide shows how to build it on a CentOS machine, but you can build/run it on any Linux, Windows or OSX.

  1. If not already present on your machine, install java, maven and git:
    yum install -y java
    yum install -y maven
    yum install -y git
  2. Create a directory for the source files, e.g. "bosphorus".
    mkdir bosphorus; cd bosphorus
  3. Check out the bosphorus source code from git.
    git pull https://github.com/njswede/bosphorus.git
  4. Build the code using Maven:
    mvn package
  5. Run the newly created JAR as a self-executing JAR. Specify the URL for your vRA host as the --vra-host parameter: java -jar target/bosphorus-0.0.1.jar --vra-url=https://<your vra host>
  6. The portal should now be accessible on http://yourhost:8080/
  7. Log in using your vRA credentials. No domain ID is necessary.

Known bugs and limitations

  • Currently only works for the default tenant.
  • Only supports day 2 operations for which there is no form.
  • Displays some day 2 operations that won't work outside the native vRA portal (such as Connect via RDP).
  • Only allows you to edit basic machine parameters when requesting catalog items. Networks, software components, etc. will be created using their default values.
  • In the Requests section, live update doesn't work for some day 2 operations.

Future updates

I'm currently running Bosphorus as a side project, so updates may be sporadic. However, here is a list of updates I'm likely do post in the somewhat near future:

  • Support for tenants other than the default one.
  • More robust live update code.
  • Support for "skins" and "themes".
  • Basic support for approvals (e.g. an "inbox" where you can do approve/reject)

bosphorus's People

Contributors

prydin avatar njswede avatar

Stargazers

Yann M. avatar Hien Nguyen  avatar  avatar Daniel Linsley avatar

Watchers

James Cloos avatar  avatar  avatar  avatar Yann M. avatar

Forkers

aspear eservent

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.