Manage git repositories

The external resources are fetched from git repositories. Every customer should be able to manage the connection to its own git repository.

Configuration

The wireframes are available on UXPin. All fields are required unless they are explicitly indicated as optional.

There will be three screens: 1. Git repository connection 2. Version 3. Overview

When no connection has been configured we will show page 1 (Git repository connection), otherwise page 3 (Overview) when the user navigates to the configuration for external resources.

Git repository connection

In this screen the following items are configurable:

  • Remote URL. In the MVP we will only support cloning over https. Cloning over ssh is out of scope.
  • Authentication method
    1. None (public repository)
    2. Username and password/personal token

The admin should check "No authentication required" if he works with a public repository. For private repositories the admin must enter a username and password. Instead of a password the admin might enter a GitHub Personal access token generated here: Personal access tokens

When the admin submits the form there will be validation for the required fields and their format. The values are sent to the backend which will store them.

Version

The API will return the available remote tags/branches and the selected tag/branch from the git repository. Branches are for a development or test environment, tags are for a staging or production environment.

In this screen the following items are configurable:

  • branches or tags. If one has been returned by the API as configured it will be preselected.

When the admin submits the form, we validate that a branch or tag has been selected. The selected branch or tag is sent to the backend which will store them.

Overview page

The overview page shows the following items: * Remote URL * Authentication method * Username if the method is "Username and password" * The selected branch or tag * Last time the resources have been fetched from the remote repository

The connection and version are editable. In the initial version this will be done by clicking on a link to the forms.

Authentication

In the MVP we will proxy all requests from the IdP admin to this application. There will be one set of credentials for all requests to the UI. This is similar to the setup of Insights. In the future we will migrate away from the proxy towards a proper single sign on solution.

Frontend technologies

We will use React for the interaction (routing, navigation, showing/hiding items). The reason is that we have developed other applications with it. We will not use an existing UI framework (Bootstrap, Patternfly) because we are going to develop our own set of components to get the Onegini look and feel. For the MVP we will create a minimalistic styling that we will replace later when we do have a design for our look and feel.