Skip to content

Commit

Permalink
Merge pull request finos#1 from mcleo-d/docs-build
Browse files Browse the repository at this point in the history
Fix Docusaurus broken Netlify build
  • Loading branch information
stephengoldbaum authored Jan 6, 2023
2 parents a3386e5 + d5d1f2e commit 07e8ba0
Show file tree
Hide file tree
Showing 9 changed files with 659 additions and 845 deletions.
58 changes: 58 additions & 0 deletions .github/ISSUE_TEMPLATE/Meeting.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
name: 🤝 Morphir Meeting Agenda
about: To track Morphir meeting agenda and attendance
---

## Date

Thursday DD MMM yyyy - 11am ET / 3pm UK

## Untracked attendees

| Name | Firm | Comment |
| :--- | :--- | :------ |

## Meeting notices

- FINOS **Project leads** are responsible for observing the FINOS guidelines for [running project meetings](https://community.finos.org/docs/governance/meeting-procedures/). Project maintainers can find additional resources in the [FINOS Maintainers Cheatsheet](https://community.finos.org/docs/finos-maintainers-cheatsheet).

- **All participants** in FINOS project meetings are subject to the [LF Antitrust Policy](https://www.linuxfoundation.org/antitrust-policy/), the [FINOS Community Code of Conduct](https://community.finos.org/docs/governance/code-of-conduct) and all other [FINOS policies](https://community.finos.org/docs/governance/#policies).

- FINOS meetings involve participation by industry competitors, and it is the intention of FINOS and the Linux Foundation to conduct all of its activities in accordance with applicable antitrust and competition laws. It is therefore extremely important that attendees adhere to meeting agendas, and be aware of, and not participate in, any activities that are prohibited under applicable US state, federal or foreign antitrust and competition laws. Please contact [email protected] with any questions.

- FINOS project meetings may be recorded for use solely by the FINOS team for administration purposes. In very limited instances, and with explicit approval, recordings may be made more widely available.

## Agenda

- [ ] Convene, roll call, welcome new people (5mins)
- [ ] Display [FINOS Antitrust Policy summary slide](https://community.finos.org/Compliance-Slides/Antitrust-Compliance-Slide.pdf)
- [ ] Review Meeting Notices (see above)
- [ ] Approve previous meeting minutes - https://github.com/finos/morphir/issues?q=is%3Aissue+is%3Aclosed+label%3Ameeting
- [ ] _Add Items Here_
- [ ] AOB, Q&A & Adjourn (5mins)

## Decisions Made

- [ ] Decision 1
- [ ] Decision 2
- [ ] ...

## Action Items

- [ ] Action 1
- [ ] Action 2
- [ ] ...

### Zoom info

- https://zoom.us/j/95452540437?pwd=TEk0bitJcVFsK3lrWVZCYmxyTm5LZz09
- **Meeting ID:** 954 5254 0437
- **Passcode:** 778814

### Dial-in

- **Find your local number:** https://zoom.us/u/aFGSSGV9x

**Github Repo:** https://github.com/finos/morphir/

**Mailing List:** Email [email protected] to subscribe to our mailing list
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[![FINOS - Incubating](https://cdn.jsdelivr.net/gh/finos/contrib-toolbox@master/images/badge-incubating.svg)](https://finosfoundation.atlassian.net/wiki/display/FINOS/Incubating)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/6526/badge)](https://bestpractices.coreinfrastructure.org/projects/6526)
[<img src="https://img.shields.io/badge/slack-@finos/morphir-green.svg?logo=slack">](https://finos-lf.slack.com/messages/morphir/)

<img src="https://github.com/finos/branding/blob/master/project-logos/active-project-logos/Morphir%20Logo/Horizontal/2020_Morphir_Logo_Horizontal.png?raw=true" width="450">
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# Implement the Spark backend as a special case of a Relational backend

## Context and Problem Statement

Given that Apache Spark's data model is an extended relational data model and most of the complexity in the backend will likely be related to the differences between the FP and the relational model (like flattening data structures, truning lookups into joins, ...), should we consider implementing the Spark backend as a special case of a Relational backend? This way we would be able to reuse the solutions we come up with in this process across a wide variety of backends including various relational databases or technologies like Apache Kafka SQL (any technology that is fundamentally relational).

## Decision Drivers

- Future potential/limitations
- Implementation effort

## Considered Options

- Map to Relational IR first, then to Spark IR
- Map directly to Spark IR
- Map directly to Spark IR, but implement flatten and joins as reusable functions

## Decision Outcome

Chosen option: "{option 1}", because {justification. e.g., only option, which meets k.o. criterion decision driver | which resolves force {force} | … | comes out best (see below)}.

### Positive Consequences <!-- optional -->

- {e.g., improvement of quality attribute satisfaction, follow-up decisions required, …}
-

### Negative Consequences <!-- optional -->

- {e.g., compromising quality attribute, follow-up decisions required, …}
-

## Pros and Cons of the Options <!-- optional -->

### Map to Relational IR first, then to Spark IR

```mermaid
graph LR
A[Morphir IR] --> A2B(Relational Backend) --> B[Relational IR]
B --> B2C(Spark Backend) --> C[Spark IR]
```

- Good, because it makes the relational mapping reusable
- Bad, because the Relational IR limits the scope of Spark operations we can map to

### Map directly to Spark IR

```mermaid
graph LR
A[Morphir IR] --> B2C
B2C(Spark Backend) --> C[Spark IR]
```

- Good, because we can fully utilize Spark's capabilities to implement all possible Morphir features
- Bad, because we cannot reuse the solutions we come up with for flattening and joins

### Map directly to Spark IR, but implement flatten and joins as reusable functions

```mermaid
graph LR
A[Morphir IR] --> B2C
B2C(Spark Backend) --> C[Spark IR]
B2C -.-> F[flatten]
B2C -.-> J[join]
```

- Good, because we can fully utilize Spark's capabilities to implement all possible Morphir features
- Good, because we can reuse the solutions we come up with for flattening and joins

## Links <!-- optional -->

- {Link type} {Link to ADR} <!-- example: Refined by ADR-0005 in 0005-example.md -->
-<!-- numbers of links can vary -->
1 change: 1 addition & 0 deletions docs/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,3 +99,4 @@ In Morphir's data format this would translate into something like this:
# Security
# License
-->
19 changes: 9 additions & 10 deletions docs/media.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@

If you're interested in learning more about the project, [Morphir Resource Centre](https://resources.finos.org/morphir/), has many links.

| Episode | Description |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTYx"><img width="250" src="https://resources.finos.org/wp-content/uploads/2022/03/introduction-to-the-morphir-show.jpg"></a> | <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTYx">Introduction to the Morphir Showcase</a> |
| <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTYz"><img width="250" src="https://resources.finos.org/wp-content/uploads/2022/03/what-morphir-is-with-stephen-gol.jpg"></a> | <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTYz">What Morphir is with Stephen Goldbaum</a> |
| <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTY2"><img width="250" src="https://resources.finos.org/wp-content/uploads/2022/03/how-morphir-works-with-attila-mi-1.jpg"></a> | <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTY2">How Morphir works with Attila Mihaly</a> |
| <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTY4"><img width="250" src="https://resources.finos.org/wp-content/uploads/2022/03/why-morphir-is-important-with-co.jpg"></a> | <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTY4">Why Morphir is Important – with Colin, James & Stephen</a> |
| <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTcw"><img width="250" src="https://resources.finos.org/wp-content/uploads/2022/03/Screenshot-2022-03-02-at-14.35.18.png"></a> | <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTcw">The Benefits & Use Case of Morphir with Jane, Chris & Stephen</a> |
| <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTcy"><img width="250" src="https://resources.finos.org/wp-content/uploads/2022/03/how-to-get-involved-closing-pane.jpg"></a> | <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTcy">How to get involved – Closing Panel Q&A</a> |
| <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTU5"><img width="250" src="https://resources.finos.org/wp-content/uploads/2022/03/morphir-showcase-full-show.jpg"></a> | <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTU5">Morphir Showcase – Full Show</a> |

| Episode | Description |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTYx"><img width="250" src="https://resources.finos.org/wp-content/uploads/2022/03/introduction-to-the-morphir-show.jpg" /></a> | <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTYx">Introduction to the Morphir Showcase</a> |
| <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTYz"><img width="250" src="https://resources.finos.org/wp-content/uploads/2022/03/what-morphir-is-with-stephen-gol.jpg" /></a> | <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTYz">What Morphir is with Stephen Goldbaum</a> |
| <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTY2"><img width="250" src="https://resources.finos.org/wp-content/uploads/2022/03/how-morphir-works-with-attila-mi-1.jpg" /></a> | <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTY2">How Morphir works with Attila Mihaly</a> |
| <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTY4"><img width="250" src="https://resources.finos.org/wp-content/uploads/2022/03/why-morphir-is-important-with-co.jpg" /></a> | <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTY4">Why Morphir is Important – with Colin, James & Stephen</a> |
| <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTcw"><img width="250" src="https://resources.finos.org/wp-content/uploads/2022/03/Screenshot-2022-03-02-at-14.35.18.png" /></a> | <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTcw">The Benefits & Use Case of Morphir with Jane, Chris & Stephen</a> |
| <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTcy"><img width="250" src="https://resources.finos.org/wp-content/uploads/2022/03/how-to-get-involved-closing-pane.jpg" /></a> | <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTcy">How to get involved – Closing Panel Q&A</a> |
| <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTU5"><img width="250" src="https://resources.finos.org/wp-content/uploads/2022/03/morphir-showcase-full-show.jpg" /></a> | <a href="https://resources.finos.org/znglist/morphir-showcase/?c=cG9zdDoxNTU5">Morphir Showcase – Full Show</a> |
36 changes: 21 additions & 15 deletions docs/users-guide/Custom Attributes.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,24 @@
# Custom attributes user guide

The contents of this document detail how to structure and load optional "sidecar" files for the purposes of adding custom attributes to Morphir types and values. Custom attributes can assign extra information to business concepts that is otherwise not included in the Morphir IR.

**Contents:**

- [File format and naming convention](#file-format-and-naming-convention)
- [Config file](#config-file)
- [Attribute file](#attribute-file)
- [Config file](#config-file)
- [Attribute file](#attribute-file)
- [Loading and updating the attribute files](#loading-and-updating-the-attribute-files)

## File format, and naming convention

To define a custom attribute, we need at least three JSON files.

1. A config file named `attribute.conf.json` that lists the attribute ID's, and maps them to display names.
2. At least one attribute file named `<someAttributeId>.json` in the `attributes`.
3. An IR containing a type definitions

## File format, and naming convention
To define a custom attribute, we need at least three JSON files.

1. A config file named `attribute.conf.json` that lists the attribute ID's, and maps them to display names.
2. At least one attribute file named `<someAttributeId>.json` in the `attributes`.
3. An IR containing a type definitions

### Config file

```
{
"test-id-1": {
Expand All @@ -30,10 +31,12 @@ To define a custom attribute, we need at least three JSON files.
}
}
```
The above example is a sample config file structure. The config file should contain key-value pairs in a JSON format, where the key is the attribute name, and the value is the attribute description.

The above example is a sample config file structure. The config file should contain key-value pairs in a JSON format, where the key is the attribute name, and the value is the attribute description.
The attribute description should include an entrypoint in the form of an [FQName](https://package.elm-lang.org/packages/finos/morphir-elm/latest/Morphir.IR.FQName) (this is the type describing your custom attribute), a display name, and a path to the IR file containing your type model

### Attribute file

```
{
"Morphir.Reference.Model.Issues.Issue401:bar": {
Expand All @@ -46,13 +49,14 @@ The attribute description should include an entrypoint in the form of an [FQName
}
}
```
The above example is a sample attribute file structure. The attribute file should be a dictionary in a JSON format, where the keys are Morphir [FQName](https://package.elm-lang.org/packages/finos/morphir-elm/latest/Morphir.IR.FQName)s, and the values are any valid JSON object.

The above example is a sample attribute file structure. The attribute file should be a dictionary in a JSON format, where the keys are Morphir [FQName](https://package.elm-lang.org/packages/finos/morphir-elm/latest/Morphir.IR.FQName)s, and the values are any valid JSON object.

## Loading and updating the attribute files

We currently provide the following APIs.

***GET /server/attributes/***
**_GET /server/attributes/_**
Returns the a JSON file with a very similar structure to the config file, but amended with `data` fields containing the actual custom attribute values, and the `ir` field containing the actual IR instead of a path pointing to it

```
Expand All @@ -69,11 +73,13 @@ Returns the a JSON file with a very similar structure to the config file, but am
}
```

***POST /server/updateattribute/\<yourattributename>***
**_POST /server/updateattribute/\<yourattributename/>_**

```
{
{
"nodeId" : <fqname>,
"newAttribute: <JSON>
}
```
Updates the given node with the given new attribute.

Updates the given node with the given new attribute.
Loading

0 comments on commit 07e8ba0

Please sign in to comment.