This repository contains the libraries you must depend on when writing or extending vendors. So unless you are extending the core of Coral or fixing a core bug, you should not need to make changes in this repository.
This repository contains all the code that cannot be exposed outside of Microsoft. It holds the Legacy v1 API and the vendors that integrate with services that are not exposed publicly. So unless you need a fix in the legacy API or you need to integrate with an internal system @Microsoft, you should not need to make changes here.
This is the main repository and contains all services that we deploy and the vendors that integrate with publicly exposed services.
This is the main integration with Azure DevOps and currently serves as the user experience for Coral
This repository contains the user experience code that expose these pages. It is basically pulling markdown files that are statically built for each version of the coral service.
For developing Coral locally the prerequisites are
There are two options for most of our pipelines: Either maintain the dotnet
runtime locally or use the vscode
dev container support.
The steps to get started if you have the runtime locally is:
Clone the repository git clone <clone url>
and change directory to it, then restore the packages using dotnet restore --interactive
and finally build everything with dotnet build
(You may supply dirs.proj
to these commands)
The frontend code can be built simply by doing npm install
and npm start
. This will recompile every time you save a file.
Once you have a successful local build you should ensure that unit-tests are passing.
Running dotnet test
will execute all tests in the repository.
There are currently no unit-test coverage for the frontend code.
Before merging a change to master, we validate it locally. We use docker-compose
to manage the external dependencies. Not all dependencies have docker images and for those we have fake implementations. The ones that docker-compose.yml
describe are:
So to make docker host the local services run docker-compose up -d
In Coral there are currently three services: The Frontend API service, the Silo service and the Documentation API service. The two API services depend on the Silo service for all vendor access, so in most cases you need to start the API service that you want to test along with the Silo.
In Visual Studio this can be managed using startup projects and in Visual Studio Code we have launch settings defined. So select the startup/launcher you need and press F5 which will take you to debug mode. Follow the links to learn more about how to debug using Visual Studio or Visual Studio Code.
At this point you should be able to use swagger or any other ReST client to access the APIs
For the user experiences we use Visual Studio Code and the shared flow is to first npm start
from within the experience repository folder and then load a browser to the endpoint.
The extension requires an actual Azure DevOps instance to load in the iframe. Therefore, to hit services running locally on your computer, you need a special extension installed on the Azure DevOps instance. This extension requires a qualified domain name.
/etc/hosts
on Linux/MacOS or c:\Windows\System32\Drivers\etc\hosts
on Windows) and append a line 127.0.0.1 coral.local
npm start
load https://coral.local:8889 in a browser and accept the invalid certificate.https://dev.azure.com/<account>/<project>/_apps/hub/fastagility.coral-ui.coral
. Replace ‘<account>' and ‘<project>' with the correct values.Initiate a Azure DevOps GIT Pull Request