Skip to content
This repository has been archived by the owner on Oct 29, 2021. It is now read-only.
Michael Schnuerle edited this page Oct 26, 2021 · 8 revisions

Introduction

The mds-core repo contains a deployable reference implementation for working with MDS data. It is a beta release meant for testing by cities and other entities to gather feedback and improve the product. We are looking for OMF community feedback and suggestions.

mds-core is...

  • a reference MDS implementation usable by cities
  • on-ramp for developers joining MDS ecosystem
  • a tool for validating software implementations and data

mds-core is not...

  • the only implementation of MDS
  • where the specification is officially defined
  • a place to define local policies or performance metrics
  • a cloud service that will be operated by the OMF

V0.1 Release Goals

  • Starting point for community-driven development
  • Documented to be fully accessible to developers and users (functionality, architecture, deployment, getting started)
  • Official OMF deliverable to be approved by Working Group, Technology Council, and Board of Directors
  • Stable code/modules are clearly delineated from those that are still experimental or evolving

This version of mds-core on the OMF repo is built to work with MDS 0.4.0. A more up-to-date version of this sponsored by LADOT is available here and is being updated continuously to support newer MDS versions.

How to Help

Review the latest code and deploy the solution in your preferred environment. Your feedback will be used to finish development.

Issues

You can open new Issues in the openmobilityfoundation/mds-core/issues area. These could be technical suggestions, bugs, clarification questions, documentation, or comments. This will allow a public discussion and resolution to your raised issue.

Inline Comments

You can also make inline comments to individual lines of code in the Pull Request. However opening an Issue is the recommended first step.

Meetings and Conversations

mds-core is being managed by the City Services Working Group. Updates will be posted in the Google Group, and be discussed on the scheduled meetings per the OMF Calendar.

Documents and Presentations

April 2020 Working Group Presentation

How Do I Use mds-core?

You can deploy it yourself:

  • Stand up in cloud (currently AWS fully supported, Azure in alpha)
  • Pick a JWT authentication service e.g. auth0
  • Send credentials and URLs to providers
  • Analyze data
    • commercial tooling
    • FOSS tooling
    • hand-rolled analysis

You could also hire consultants to assist, or hosting firm, to to do all the items above.

All the parts

But you can choose to use only some combination of these things. mds-core is built to be modular.

Combination of parts

Technical: Stack Choices

  • Language: Typescript
  • Database: Postgres
  • Cache: Redis
  • Identity: JWT
  • Containers: Kubernetes
  • Messaging: NATS (optional)
  • Streaming: Kafka (optional)

Alternate implementations are welcome, e.g. a mongo version of the data store.

Containers Diagram

The infrastructure is also built to be scalable.

Scalable

Access to an MDS Feed

Note that in order to test mds-core, you will need access to an MDS feed from a provider. Cities, third-party vendors, and providers will have this access. Make sure your testing environment is sandboxed and secured appropriately. There is currently no publicly available MDS simulator that could generate fake MDS data, though it may be developed by someone in the future. The City of Santa Monica also has an open source data processing tool that can generate some mock MDS data.

You will still need to authenticate with mds-core to get access to the data. Provider MDS data is fed into mds-core securely.

Authentication