├── developer-portal ├── src │ ├── assets │ │ └── .gitkeep │ ├── app │ │ ├── home │ │ │ ├── home.component.css │ │ │ ├── home.component.ts │ │ │ ├── home.component.spec.ts │ │ │ └── home.component.html │ │ ├── data-load │ │ │ ├── data-load.component.css │ │ │ ├── data-load.component.ts │ │ │ ├── data-load.component.spec.ts │ │ │ └── data-load.component.html │ │ ├── power-bi │ │ │ ├── power-bi.component.css │ │ │ ├── power-bi.component.ts │ │ │ ├── power-bi.component.spec.ts │ │ │ └── power-bi.component.html │ │ ├── authorization │ │ │ ├── components │ │ │ │ └── unauthorized │ │ │ │ │ ├── unauthorized.component.css │ │ │ │ │ ├── unauthorized.component.html │ │ │ │ │ ├── unauthorized.component.ts │ │ │ │ │ └── unauthorized.component.spec.ts │ │ │ ├── services │ │ │ │ ├── authorization.service.spec.ts │ │ │ │ └── authorization.service.ts │ │ │ └── guards │ │ │ │ └── user.guard.ts │ │ ├── models │ │ │ ├── drop-down-option.ts │ │ │ ├── user-profile.ts │ │ │ └── user-group.enum.ts │ │ ├── user-management │ │ │ ├── models │ │ │ │ ├── user-management-status.enum.ts │ │ │ │ ├── data-group.ts │ │ │ │ ├── get-group-members-response.ts │ │ │ │ └── get-groups-response.ts │ │ │ ├── group-assignment │ │ │ │ ├── group-assignment-action.enum.ts │ │ │ │ ├── group-assignment.component.css │ │ │ │ ├── group-assignment.component.spec.ts │ │ │ │ ├── group-assignment.component.html │ │ │ │ └── group-assignment.component.ts │ │ │ ├── user-overview │ │ │ │ ├── user-overview.component.css │ │ │ │ ├── user-overview.component.spec.ts │ │ │ │ ├── user-overview.component.html │ │ │ │ └── user-overview.component.ts │ │ │ ├── services │ │ │ │ ├── assignment-event.service.ts │ │ │ │ └── user-management.service.spec.ts │ │ │ ├── group-overview-row │ │ │ │ ├── group-overview-row.component.css │ │ │ │ ├── group-overview-row.component.spec.ts │ │ │ │ ├── group-overview-row.component.html │ │ │ │ └── group-overview-row.component.ts │ │ │ ├── user-overview-row │ │ │ │ ├── user-overview-row.component.css │ │ │ │ ├── user-overview-row.component.spec.ts │ │ │ │ ├── user-overview-row.component.html │ │ │ │ └── user-overview-row.component.ts │ │ │ ├── user-edit │ │ │ │ ├── user-edit.component.css │ │ │ │ ├── user-edit.component.spec.ts │ │ │ │ ├── user-edit.component.html │ │ │ │ └── user-edit.component.ts │ │ │ ├── user-creation │ │ │ │ ├── user-creation.component.css │ │ │ │ ├── user-creation.component.spec.ts │ │ │ │ ├── user-creation.component.html │ │ │ │ └── user-creation.component.ts │ │ │ └── user-delete │ │ │ │ ├── user-delete.component.css │ │ │ │ ├── user-delete.component.spec.ts │ │ │ │ ├── user-delete.component.html │ │ │ │ └── user-delete.component.ts │ │ ├── swagger │ │ │ ├── swagger.component.css │ │ │ ├── swagger.component.html │ │ │ └── swagger.component.ts │ │ ├── rest │ │ │ ├── rest.component.css │ │ │ ├── rest.component.spec.ts │ │ │ ├── rest.component.ts │ │ │ └── rest.component.html │ │ ├── legal-tag-management │ │ │ ├── legal-tag-form │ │ │ │ ├── legal-tag-form.component.css │ │ │ │ ├── legal-tag-form.component.ts │ │ │ │ ├── legal-tag-form.component.spec.ts │ │ │ │ └── legal-tag-form.component.html │ │ │ ├── models │ │ │ │ ├── legal-tag-properties.ts │ │ │ │ └── legal-tag.ts │ │ │ ├── legal-tag-create │ │ │ │ ├── legal-tag-create.component.css │ │ │ │ ├── legal-tag-create.component.html │ │ │ │ ├── legal-tag-create.component.spec.ts │ │ │ │ └── legal-tag-create.component.ts │ │ │ ├── legal-tag-detail │ │ │ │ ├── legal-tag-detail.component.css │ │ │ │ ├── legal-tag-detail.component.spec.ts │ │ │ │ ├── legal-tag-detail.component.html │ │ │ │ └── legal-tag-detail.component.ts │ │ │ ├── services │ │ │ │ ├── legal-tag-management.service.spec.ts │ │ │ │ └── legal-tag-management.service.ts │ │ │ └── legal-tag-overview │ │ │ │ ├── legal-tag-overview.component.spec.ts │ │ │ │ ├── legal-tag-overview.component.css │ │ │ │ └── legal-tag-overview.component.ts │ │ ├── services │ │ │ ├── osdu-version.service.spec.ts │ │ │ ├── profile.service.spec.ts │ │ │ ├── osdu-version.service.ts │ │ │ └── profile.service.ts │ │ ├── app.component.css │ │ ├── profile │ │ │ ├── profile.component.css │ │ │ ├── profile.component.spec.ts │ │ │ └── profile.component.html │ │ ├── app.component.spec.ts │ │ ├── app.component.ts │ │ ├── app.component.html │ │ └── app-routing.module.ts │ ├── favicon.ico │ ├── main.ts │ ├── styles.css │ ├── index.html │ ├── test.ts │ ├── polyfills.ts │ └── theme.scss ├── .dockerignore ├── .vscode │ ├── extensions.json │ ├── launch.json │ └── tasks.json ├── tsconfig.app.json ├── docker-compose.yml ├── tsconfig.spec.json ├── .editorconfig ├── Dockerfile-local ├── tsconfig.json ├── .browserslistrc ├── Dockerfile ├── .gitignore ├── nginx.conf ├── .eslintrc.json ├── karma.conf.js ├── package.json └── angular.json ├── control-plane ├── .gitignore ├── containerRun.sh ├── Dockerfile ├── main.bicep ├── modules │ ├── lab_dataload.bicep │ └── lab_storage.bicep └── README.md ├── .github └── workflows │ ├── pull-request.yml │ ├── ci.yml │ ├── generate-arm.yml │ ├── release.yml │ ├── validate.yml │ └── codeql-analysis.yml ├── CODE_OF_CONDUCT.md ├── rest-scripts ├── README.md ├── sample.csv ├── auth.http └── services │ ├── entitlement.http │ ├── partition.http │ ├── search.http │ ├── legal.http │ └── schema.http ├── SUPPORT.md ├── data-load ├── README.md └── open-test-data │ └── downloadTnoData.sh ├── LICENSE ├── .gitignore ├── SECURITY.md └── README.md /developer-portal/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /developer-portal/src/app/home/home.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /developer-portal/src/app/data-load/data-load.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /developer-portal/src/app/power-bi/power-bi.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /control-plane/.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | .envrc 3 | __pycache__ 4 | build 5 | dist 6 | datasets 7 | -------------------------------------------------------------------------------- /control-plane/containerRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) Microsoft Corporation. 3 | # Licensed under the MIT License. 4 | curl $SETUP_SCRIPT | bash 5 | -------------------------------------------------------------------------------- /developer-portal/.dockerignore: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. 2 | # Licensed under the MIT License. 3 | 4 | node_modules 5 | .git 6 | .gitignore 7 | -------------------------------------------------------------------------------- /developer-portal/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-data-manager-for-energy-experience-lab/HEAD/developer-portal/src/favicon.ico -------------------------------------------------------------------------------- /developer-portal/src/app/authorization/components/unauthorized/unauthorized.component.css: -------------------------------------------------------------------------------- 1 | /* Copyright (c) Microsoft Corporation. 2 | Licensed under the MIT License. */ 3 | 4 | .error-message { 5 | color: #f44336; 6 | } 7 | -------------------------------------------------------------------------------- /.github/workflows/pull-request.yml: -------------------------------------------------------------------------------- 1 | name: Pull Request 2 | 3 | on: 4 | pull_request: 5 | branches: [ "main" ] 6 | 7 | jobs: 8 | validate: 9 | name: Validation 10 | uses: ./.github/workflows/validate.yml 11 | -------------------------------------------------------------------------------- /developer-portal/src/app/models/drop-down-option.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | export class DropDownOption { 5 | public value: string; 6 | public displayValue: string; 7 | } 8 | -------------------------------------------------------------------------------- /developer-portal/src/app/user-management/models/user-management-status.enum.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | export enum ProcessStatus { 5 | InProgress, 6 | Succeeded, 7 | Failed 8 | } 9 | -------------------------------------------------------------------------------- /developer-portal/src/app/authorization/components/unauthorized/unauthorized.component.html: -------------------------------------------------------------------------------- 1 | 3 | 4 |
5 | -------------------------------------------------------------------------------- /developer-portal/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 3 | "recommendations": [ 4 | "angular.ng-template", 5 | "davidanson.vscode-markdownlint", 6 | "dbaeumer.vscode-eslint" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /developer-portal/src/app/swagger/swagger.component.css: -------------------------------------------------------------------------------- 1 | /* Copyright (c) Microsoft Corporation. 2 | Licensed under the MIT License. */ 3 | 4 | .alert { 5 | padding: 20px; 6 | background-color: #ffe895; 7 | color: black; 8 | margin-top: 15px; 9 | } 10 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: [ "main" ] 6 | paths-ignore: 7 | - 'artifacts/**' 8 | 9 | workflow_dispatch: 10 | 11 | jobs: 12 | validate: 13 | name: Validation 14 | uses: ./.github/workflows/validate.yml 15 | -------------------------------------------------------------------------------- /developer-portal/src/app/user-management/group-assignment/group-assignment-action.enum.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | export enum GroupAssignmentAction { 5 | Addition, 6 | Removal // This isn't used, but was added as an example 7 | } 8 | -------------------------------------------------------------------------------- /developer-portal/src/app/swagger/swagger.component.html: -------------------------------------------------------------------------------- 1 | 3 | 4 |6 | Test features in Microsoft Azure Data Manager for Energy after loading the TNO data set. 7 |
8 |9 | Note: Manifests are automatically assigned a data.tno.viewers and data.tno.owners Access Control List (ACL). 10 | The first user created during Experience Lab's deployment will be assigned these ACLs. 11 | Additional users will need to be a member of these ACLs to query and manipulate TNO data. 12 | Users can be added to these ACLs from the User Management page. 13 |
14 | 15 |6 | Experience Lab is an automated, end-to-end deployment accelerator with a friendly web-based UI that provides easy, fast deployments of Microsoft Azure Data Manager for Energy with sample dataset(s) for learning, testing, demo, and training purposes. 7 | This enables business audience and domain practitioners who are not familiar with OSDUTM to be able to create fully loaded and configured Microsoft Azure Data Manager for Energy deployments. 8 |
9 |10 | It is not intended to be a guide to Microsoft Azure Data Manager for Energy or intended to deploy in production environments. 11 |
12 |14 | Experience Lab provides several integration capabilities for Microsoft Azure Data Manager for Energy: 15 |
16 |26 | *OSDU is a trademark of The Open Group. 27 |
28 | -------------------------------------------------------------------------------- /developer-portal/src/app/authorization/services/authorization.service.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { HttpClient, HttpHeaders } from '@angular/common/http'; 5 | import { Injectable } from '@angular/core'; 6 | import { catchError, map, Observable, of } from 'rxjs'; 7 | import { UserGroup } from 'src/app/models/user-group.enum'; 8 | import { environment } from 'src/environments/environment'; 9 | 10 | @Injectable({ 11 | providedIn: 'root' 12 | }) 13 | export class AuthorizationService { 14 | 15 | /** 16 | * Caches the user's groups to prevent unnecessary HTTP calls 17 | */ 18 | private cachedUserGroups: any[] = null; 19 | 20 | constructor(private http: HttpClient) { } 21 | 22 | /** 23 | * Checks if the authenticated user is in the specified group 24 | * @param group The group to verify the user belongs to 25 | * @returns True if the user in the group, false otherwise 26 | */ 27 | public IsUserInGroup(group: UserGroup): Observable7 | Included in Experience Lab is a pre-configured Power BI connector for visualizing TNO data. 8 | The connector is open source, and can be found on Kadri Umay's GitHub. 9 | Currently, the Power BI connector only supports client-side Power BI reports - it does not support reports published to Power BI Online. 10 |
11 |The following steps explain how to use Power BI with Azure Data Manager for Energy.
22 |Name: {{this.profile?.name}}
6 |Email: {{this.profile?.email}}
7 |Id: {{this.profile?.id}}
8 |{{this.tokens?.access}}
20 |{{this.tokens?.refresh}}
33 |Assigned Groups
35 || Group | 51 |{{group.name}} | 52 |Description | 55 |{{group.description}} | 56 |
|---|---|
| No data matching the filter "{{input.value}}" | 61 |
6 | This component assists in testing Microsoft Azure Data Manager for Energy REST APIs to execute underlying service API calls or 7 | perform functional flows. 8 |
9 | 10 |There are many different ways that REST APIs can be called from the use of simple curl commands to complex Postman 13 | projects. For this lab, a Rest Client will be used 15 | for a simple way to send a request. This extension allows for simple http scripts to be executed and leverages 16 | Visual Studio Settings to be able to easily point to different environments.
17 |
32 | "rest-client.environmentVariables": {
33 | "{{this.instanceName}}": {
34 | "TENANT_ID": "{{this.tenantId}}",
35 | "CLIENT_ID": "{{this.clientId}}",
36 | "HOST": "{{this.host}}",
37 | "DATA_PARTITION": "{{this.dataPartition}}",
38 | "DEVELOPER_PORTAL": "{{this.developerPortalUrl}}",
39 | "REFRESH_TOKEN": "{{this.refreshToken}}"
40 | }
41 | }
42 |
43 | Basic core functionality for includes: the creation of a legal tag, the submission of a storage record, 52 | and then the search and retrieval for that record.
53 | 54 |Send Requests from rest/check-core.http
56 |Basic manifest ingestion functionality includes: the creation of a legal tag, triggering a workflow, 61 | retrieving the status, waiting for completion, and then querying for the data uploaded.
62 |Send Requests from rest/check-csv.http
64 |Basic csv data ingestion functionality includes: the creation of a legal tag, creation of a schema, 69 | retrieval of an Upload URL, uploading a CSV file to that URL, triggering the workflow, retrieving the 70 | status, waiting for completion, and then querying the data uploaded.
71 |Send Requests from rest/check-csv.http
73 |