Coder Social home page Coder Social logo

mexyzer / datahub-portal Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nrcan/datahub-portal

0.0 0.0 0.0 58.37 MB

License: MIT License

Shell 0.50% JavaScript 0.86% Python 0.57% Perl 0.14% C# 49.96% PowerShell 0.23% CSS 4.51% HTML 37.78% Dockerfile 0.02% SCSS 5.41% Gherkin 0.01% TSQL 0.01%

datahub-portal's Introduction

Gitter

Welcome to the DataHub Portal

This repository contains the source code the NRCan DataHub. The DataHub is an enterprise portal designed to manage, connect and bridge existing cloud tools and simplify scientific and corporate workflows.

What are the portal capabilities?

Landing & Shortcuts

The DataHub landing pages provides instant jump lists to let users access their recent tools, and also the storage, Power BI and databricks areas associated with their account. The DataHub landing has saved many users from navigation exhaustion in the Power BI & Databricks menus.

Data Projects

The DataHub makes it easy for multiple teams, labs or users to get access to Storage, Databases, Data Science and Analytical tools:

  • Storage accounts: A Data Project includes a storage explorer to upload/download files with a friendly user interface.
  • Databricks integration: The Data Project has a direct link to Databricks workspaces and also simplifies the mounting of the storage account for the notebooks
  • Power BI integration: The integration implements NRCan's governance model and connects users directly to their workspaces and key reports.
  • SQL Server: A SQL Server can be associated to a project and the connection details will be directly available to the users.
  • PostgreSQL: Postgresql servers can also be linked and the project tools can generate the associated Azure token for integrated authentication.
  • Data Sharing: A simple workflow lets users select a file, and request data sharing (see Data Sharing for more details)
  • User onboarding: Project administrators can invite other users to their project(s)

User Management

The portal integrates with Azure Active Directory and manages roles and users. The portal has 3 types of users: Datahub administrators, Project administrators and Users. Users can access project resources, project administrators can invite other users and datahub administrators have the ability to invite administrators.

Resource Management

The portal is designed to be used with Terraform or other IaC systems and automate the creation of resources. The system manages a list of workflows with user requests in SQL tables that can be integrated in DevOps pipelines.

Secure by default

Each component in the system has been designed with high security in mind. The portal doesn't require any elevated Azure role or service principal and uses OBO permissions for all management tasks.

Integrated help

The key pages and modules in the portal offer integrated help for guiding users with Power BI, Databricks, and Azure Storage. The current help content is located in the Wiki.

Data Entry Framework

The portal includes a data entry framework that leverages Entity Framework, fluent code, annotations and can generate complex forms to support client business rules, multiple tables through standard SQL tables. This model enables an easy integration in Power BI or Tableau.

Technology

The Web Portal is developed in .NET 6 and uses Blazor and ASP.Net core and several other open source libraries. The portal can run on Windows, Linux and can be deployed in any cloud environment. The styling leverages SCSS to modularize the CSS settings.

Extensibility & Configuration

Several customizations can be done simply using the configuration. Each module in the data project can be enabled or disabled in the configuration.

The DataHub is divided into modules which connect together using the ASP.Net core IoC broker. This enables to add extensions through nuget packages or separate projects. All modules are automatically wired to the portal using assembly scanning. Each module can be disabled using the configuration files.

Localization

The DataHub provides localization files for both English et Francais but support for other languages can be added using additional localization files.

Github Structure

This project includes multiple projects

  • DataHub, contains the code for the application and presentation layer of the modules.
  • Resource Provisioner contains the code to handle the terraform infrastructure for the Datahub

Commit Messages

The commit messages must loosely follow the Conventional Commits specification. This enables to automatically generate the changelog and release notes.

The scopes are represented by the following table

Type Emoji Code
feat โœจ :sparkles:
fix ๐Ÿ› :bug:
docs ๐Ÿ“š :books:
style ๐Ÿ’Ž :gem:
refactor ๐Ÿ”จ :hammer:
deploy ๐Ÿš€ :rocket:
test ๐Ÿšจ :rotating_light:
build ๐Ÿ“ฆ :package:
ci ๐Ÿ‘ท :construction_worker:
chore ๐Ÿ”ง :wrench:
work in progress (WIP) ๐Ÿšง :construction:

Branching

Branches are created from the develop branch and merged back into the develop branch. The master branch is used for releases only. Pull requests are strongly encouraged and should be reviewed by at least one other developer.

datahub-portal's People

Contributors

csnabeel avatar datahub-machine avatar davidreneuw avatar dependabot[bot] avatar erikapption avatar gcalexk avatar gcerik avatar gcnabeel avatar hperezga avatar iroelperez avatar lynnehunks avatar matteogisondi avatar nicksalt avatar robertilyes02 avatar simon-wang-gc avatar swangcanada avatar yjmrobert avatar

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.