Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create GraphQL endpoint, leveraging neo4j graphql library v3 #4

Closed
18 tasks done
halcyondude opened this issue Apr 21, 2022 · 6 comments · Fixed by #50
Closed
18 tasks done

Create GraphQL endpoint, leveraging neo4j graphql library v3 #4

halcyondude opened this issue Apr 21, 2022 · 6 comments · Fixed by #50
Assignees
Labels

Comments

@halcyondude
Copy link
Collaborator

halcyondude commented Apr 21, 2022

GraphQL schema --> source of truth

Tasks

  • Create GraphQL API endpoint #52

  • MVP CNCF Schema

    • export data model from arrows.app --> landscape.graphql
    • generate full schema from types
    • srg-xyz type heirarchy
    • LandscapeEntity (base type)
      • Card (base)
        • Member
        • Project
        • TAG
        • TOC
        • EUG
        • Person
  • use schema to drive data model instantiation --> neo

Moved to new/other issue(s):

More Info


resources

@halcyondude halcyondude transferred this issue from another repository Apr 21, 2022
@halcyondude halcyondude added this to the graphql-endpoint-v1 milestone Apr 21, 2022
@halcyondude halcyondude changed the title graph.cncf.io (GraphQL) Create GraphQL endpoint, leveraging neo4j graphql library v3 Apr 21, 2022
@halcyondude halcyondude self-assigned this Apr 22, 2022
@halcyondude
Copy link
Collaborator Author

halcyondude commented Apr 22, 2022

after doing a bit of research, a few things are clear.

  • the data model is best described via GraphQL
  • data is likely best loaded via GraphQL mutations
  • graphql type definitions generated using the Introspector nicely handle constraint and index declarations
  • a VERY nice workflow using arrows.app exists.
    • generate data model (as we've done) using arrows.app
    • export as .graphql
    • write the schema --> Neo4j DB using the neo graphql v3 library

Game Changer

https://neo4j.com/docs/graphql-manual/current/type-definitions/interfaces/#_directive_inheritance

Any directives present on an interface or its fields will be "inherited" by any object types implementing it. For example, the type definitions above could be refactored to have the @relationship directive on the actors field in the Production interface instead of on each implementing type as it is currently:

interface Production {
    title: String!
    actors: [Actor!]! @relationship(type: "ACTED_IN", direction: IN, properties: "ActedIn")
}

type Movie implements Production {
    title: String!
    actors: [Actor!]!
    runtime: Int!
}

type Series implements Production {
    title: String!
    actors: [Actor!]!
    episodes: Int!
}

interface ActedIn @relationshipProperties {
    role: String!
}

type Actor {
    name: String!
    actedIn: [Production!]! @relationship(type: "ACTED_IN", direction: OUT, properties: "ActedIn")
}

https://neo4j.com/docs/graphql-manual/current/type-definitions/interfaces/#_overriding

In addition to inheritance, directives can be overridden on a per-implementation basis. Say you had an interface defining some Content, with some basic authorization rules:

interface Content
    @auth(rules: [{ operations: [CREATE, UPDATE, DELETE], allow: { author: { username: "$jwt.sub" } } }]) {
    title: String!
    author: [Author!]! @relationship(type: "HAS_CONTENT", direction: IN)
}

type User {
    username: String!
    content: [Content!]! @relationship(type: "HAS_CONTENT", direction: OUT)
}

type PublicContent implements Content {
    title: String!
    author: [Author!]!
}

type PrivateContent implements Content
    @auth(rules: [{ operations: [CREATE, READ, UPDATE, DELETE], allow: { author: { username: "$jwt.sub" } } }]) {
    title: String!
    author: [Author!]!
}

halcyondude added a commit that referenced this issue Apr 23, 2022
- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Apr 23, 2022
Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>
@halcyondude halcyondude linked a pull request Apr 23, 2022 that will close this issue
halcyondude added a commit that referenced this issue Apr 25, 2022
- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Apr 25, 2022
Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Apr 25, 2022
- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Apr 25, 2022
Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Apr 26, 2022
- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Apr 26, 2022
Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue May 4, 2022
- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue May 4, 2022
Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue May 10, 2022
- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue May 10, 2022
Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue May 17, 2022
- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue May 17, 2022
Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Jul 1, 2022
- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Jul 1, 2022
Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>
@AlexxNica
Copy link

AlexxNica commented Jul 11, 2022

As we get back on track, here are some notes I had about finding the best way of handling the data model<->graphql<->neo4j workflow:

From what I'm seeing right now, the 4-graphql-endpoint-v1 branch isn't handling any types for the GraphQL schema yet. Do you have any thoughts on how to handle that if using GraphQL as the source of truth?

These are the methods I've come so far after some research:

Cypher as the source of truth

This method changes the flow to be Cypher->Neo4j->GraphQL.

Steps:

  1. Use Cypher queries within .cypher files (so we can handle version control, CI/CD) as the actual source of truth.
  2. Load that into the database.
  3. Introspect and generate the GraphQL schema (check if the schema already exists and only generate if changes were made to the types (otherwise we can be generating schemas way too often–possibly extra load).
  4. Generate TypeScript definitions based on the generated schema.
  5. We're ready to consume the GraphQL schema and the TypeScript definitions.

Possible drawbacks:

  • Is Neo4j capable of generating reliable and ready-to-use GraphQL schemas? (example from introspector limitations)
    • Can be remediated: Do some processing on the generated schema to handle edge cases.
  • We don't have a visual representation of the schema.
    • Can be remediated: The visual could be generated by another tool based on the Neo4j DB, GraphQL schema, or the TypeScript definitions.

GraphQL as the source of truth

This method changes the flow to be GraphQL->Cypher->Neo4j. (The Cypher in this case is automatically generated by the Neo4j GraphQL Library.)

Schema:

  1. Write the GraphQL schema (either manually or through apps like arrows.app (see note about arrows.app below))
  2. Use the Neo4j GraphQL Library to integrate the schema through Neo4j and a GraphQL server.
  3. Generate TypeScript definitions based on the schema.
  4. We're ready to consume the GraphQL schema and the TypeScript definitions.

Data loading:

  1. Write mutations directly to the GraphQL server.

Data processing:

  • Use GraphQL custom resolvers.
  • Use any other method before the mutation/query.

Visual representation

It might be worth exploring Mermaid as an option to generate visual representations of the schema. GitHub now supports it natively within markdown instances (issues, documents, etc.).

Note about arrows.app

After some research and testing, I've found arrows.app to be unreliable (some bugs caused the graph to lose its current status and saved outdated versions on top of new ones) and hard to use in a collaborative setting (not having integrations or clear ways of openly collaborating).

More context: neo4j-labs/arrows.app#55 (comment)

Example using Mermaid:

flowchart TB
    subgraph Person
    Person_id["id: ID!"]
    Person_name["name: String!"]
    Person_organization["organization: String!"]
    Person_location["location: [Location!]!"]
    end
    subgraph Role
    Role_id["id: ID!"]
    Role_name["name: String!"]
    end
    subgraph Organization
    Organization_id["id: ID!"]
    Organization_name["name: String!"]
    Organization_headquarters["headquarters: [City!]!"]
    end
    subgraph Location
    Location_id["id: ID!"]
    Location_name["name: String!"]
    end
    subgraph GitRepo
    GitRepo_id["id: ID!"]
    GitRepo_name["name: String!"]
    end
    subgraph TocRole
    TocRole_id["id: ID!"]
    TocRole_name["name: String!"]
    end
    subgraph Project
    Project_id["id: ID!"]
    Project_name["name: String!"]
    end
    subgraph ProjectRole
    ProjectRole_id["id: ID!"]
    ProjectRole_name["name: String!"]
    end
    subgraph TAGrp
    TAGrp_id["id: ID!"]
    TAGrp_name["name: String!"]
    end
    subgraph TagRole
    TagRole_id["id: ID!"]
    TagRole_name["name: String!"]
    end
    subgraph City
    City_id["id: ID!"]
    City_name["name: String!"]
    end
    Person_location -->|LOCATED_IN| Location
    Person -->|MAINTAINER_OF| GitRepo
    Person -->|HAS_TOC_ROLE| TocRole
    Person -->|HAS_ROLE| ProjectRole
    ProjectRole -->|SERVED| Project
    Project -->|IN_SCOPE| TAGrp
    TagRole -->|SERVED| TAGrp
    Organization_headquarters -->|HQ_IN| City
    %% Temporary fix to represent bidirectional linking. It seems GitHub doesn't support Mermaid's native bidirectional linking yet.
    Organization <--> node((IS_SUB)) <--> Organization
    Organization -->|EMPLOYED| Person
    Person -->|IS_BOARD| Organization

Edit: forgot to add the source for the Mermaid example. Here it is: https://github.com/nikas-org/collab-coordination/blob/d795485e6c54c895838a663bbfb55b22cbd9e1b2/examples/landscape-graph_mermaid.md

@halcyondude
Copy link
Collaborator Author

halcyondude commented Jul 28, 2022

At the risk of "marketing," pictures > words sometimes :) Hope this helps!

image

image

halcyondude added a commit that referenced this issue Aug 4, 2022
- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 4, 2022
Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 4, 2022
- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 4, 2022
Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 4, 2022
* Flat: latest data (2022-07-15T00:05:18.517Z)
{
  "date": "2022-07-15T00:05:18.517Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": -415,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": -209,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-16T00:05:37.097Z)
{
  "date": "2022-07-16T00:05:37.097Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 10943,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 9687,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-17T00:04:46.190Z)
{
  "date": "2022-07-17T00:04:46.190Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 248,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 54,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-18T00:04:51.054Z)
{
  "date": "2022-07-18T00:04:51.054Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 240,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 176,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* GraphQL is the source of data mode truth

- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Sub-Graph Packs: data model extensibility

Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>

* resources: grandstack blogs

Signed-off-by: Matt Young <halcyondude@gmail.com>

* resources: Cloud Native Application Bundles

Related to #42

Signed-off-by: Matt Young <halcyondude@gmail.com>

* sgp --> sgm, misc docs

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: initial project creation

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: WIP

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: WIP

Signed-off-by: Matt Young <halcyondude@gmail.com>

* add: github.com GraphQL schema SDL

octokit/graphql-schema@34d7f06
Signed-off-by: Matt Young <halcyondude@gmail.com>

* [chore] Basic fed2 boilerplate example, references

Signed-off-by: Matt Young <halcyondude@gmail.com>

* [chore] remove Angular sample app prototype

Signed-off-by: Matt Young <halcyondude@gmail.com>

Co-authored-by: flat-data <flat-data@users.noreply.github.com>
halcyondude added a commit that referenced this issue Aug 4, 2022
- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 4, 2022
Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 4, 2022
* Flat: latest data (2022-07-15T00:05:18.517Z)
{
  "date": "2022-07-15T00:05:18.517Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": -415,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": -209,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-16T00:05:37.097Z)
{
  "date": "2022-07-16T00:05:37.097Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 10943,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 9687,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-17T00:04:46.190Z)
{
  "date": "2022-07-17T00:04:46.190Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 248,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 54,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-18T00:04:51.054Z)
{
  "date": "2022-07-18T00:04:51.054Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 240,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 176,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* GraphQL is the source of data mode truth

- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Sub-Graph Packs: data model extensibility

Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>

* resources: grandstack blogs

Signed-off-by: Matt Young <halcyondude@gmail.com>

* resources: Cloud Native Application Bundles

Related to #42

Signed-off-by: Matt Young <halcyondude@gmail.com>

* sgp --> sgm, misc docs

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: initial project creation

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: WIP

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: WIP

Signed-off-by: Matt Young <halcyondude@gmail.com>

* add: github.com GraphQL schema SDL

octokit/graphql-schema@34d7f06
Signed-off-by: Matt Young <halcyondude@gmail.com>

* [chore] Basic fed2 boilerplate example, references

Signed-off-by: Matt Young <halcyondude@gmail.com>

* [chore] remove Angular sample app prototype

Signed-off-by: Matt Young <halcyondude@gmail.com>

Co-authored-by: flat-data <flat-data@users.noreply.github.com>
halcyondude added a commit that referenced this issue Aug 4, 2022
- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 4, 2022
Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 4, 2022
* Flat: latest data (2022-07-15T00:05:18.517Z)
{
  "date": "2022-07-15T00:05:18.517Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": -415,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": -209,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-16T00:05:37.097Z)
{
  "date": "2022-07-16T00:05:37.097Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 10943,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 9687,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-17T00:04:46.190Z)
{
  "date": "2022-07-17T00:04:46.190Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 248,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 54,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-18T00:04:51.054Z)
{
  "date": "2022-07-18T00:04:51.054Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 240,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 176,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* GraphQL is the source of data mode truth

- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Sub-Graph Packs: data model extensibility

Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>

* resources: grandstack blogs

Signed-off-by: Matt Young <halcyondude@gmail.com>

* resources: Cloud Native Application Bundles

Related to #42

Signed-off-by: Matt Young <halcyondude@gmail.com>

* sgp --> sgm, misc docs

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: initial project creation

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: WIP

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: WIP

Signed-off-by: Matt Young <halcyondude@gmail.com>

* add: github.com GraphQL schema SDL

octokit/graphql-schema@34d7f06
Signed-off-by: Matt Young <halcyondude@gmail.com>

* [chore] Basic fed2 boilerplate example, references

Signed-off-by: Matt Young <halcyondude@gmail.com>

* [chore] remove Angular sample app prototype

Signed-off-by: Matt Young <halcyondude@gmail.com>

Co-authored-by: flat-data <flat-data@users.noreply.github.com>
Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 4, 2022
- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 4, 2022
Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 4, 2022
* Flat: latest data (2022-07-15T00:05:18.517Z)
{
  "date": "2022-07-15T00:05:18.517Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": -415,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": -209,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-16T00:05:37.097Z)
{
  "date": "2022-07-16T00:05:37.097Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 10943,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 9687,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-17T00:04:46.190Z)
{
  "date": "2022-07-17T00:04:46.190Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 248,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 54,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-18T00:04:51.054Z)
{
  "date": "2022-07-18T00:04:51.054Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 240,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 176,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* GraphQL is the source of data mode truth

- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Sub-Graph Packs: data model extensibility

Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>

* resources: grandstack blogs

Signed-off-by: Matt Young <halcyondude@gmail.com>

* resources: Cloud Native Application Bundles

Related to #42

Signed-off-by: Matt Young <halcyondude@gmail.com>

* sgp --> sgm, misc docs

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: initial project creation

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: WIP

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: WIP

Signed-off-by: Matt Young <halcyondude@gmail.com>

* add: github.com GraphQL schema SDL

octokit/graphql-schema@34d7f06
Signed-off-by: Matt Young <halcyondude@gmail.com>

* [chore] Basic fed2 boilerplate example, references

Signed-off-by: Matt Young <halcyondude@gmail.com>

* [chore] remove Angular sample app prototype

Signed-off-by: Matt Young <halcyondude@gmail.com>

Co-authored-by: flat-data <flat-data@users.noreply.github.com>
Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 15, 2022
- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 15, 2022
Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 15, 2022
* Flat: latest data (2022-07-15T00:05:18.517Z)
{
  "date": "2022-07-15T00:05:18.517Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": -415,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": -209,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-16T00:05:37.097Z)
{
  "date": "2022-07-16T00:05:37.097Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 10943,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 9687,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-17T00:04:46.190Z)
{
  "date": "2022-07-17T00:04:46.190Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 248,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 54,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-18T00:04:51.054Z)
{
  "date": "2022-07-18T00:04:51.054Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 240,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 176,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* GraphQL is the source of data mode truth

- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Sub-Graph Packs: data model extensibility

Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>

* resources: grandstack blogs

Signed-off-by: Matt Young <halcyondude@gmail.com>

* resources: Cloud Native Application Bundles

Related to #42

Signed-off-by: Matt Young <halcyondude@gmail.com>

* sgp --> sgm, misc docs

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: initial project creation

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: WIP

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: WIP

Signed-off-by: Matt Young <halcyondude@gmail.com>

* add: github.com GraphQL schema SDL

octokit/graphql-schema@34d7f06
Signed-off-by: Matt Young <halcyondude@gmail.com>

* [chore] Basic fed2 boilerplate example, references

Signed-off-by: Matt Young <halcyondude@gmail.com>

* [chore] remove Angular sample app prototype

Signed-off-by: Matt Young <halcyondude@gmail.com>

Co-authored-by: flat-data <flat-data@users.noreply.github.com>
Signed-off-by: Matt Young <halcyondude@gmail.com>
@halcyondude
Copy link
Collaborator Author

halcyondude commented Aug 15, 2022

https://github.com/cncf/landscape-graph/blob/4-graphql-endpoint-v1/db/cncf/cncf.graphql

https://github.com/cncf/landscape-graph/tree/4-graphql-endpoint-v1/db/cncf

@AlexxNica FYI (WIP - but progress all the same :))

halcyondude added a commit that referenced this issue Aug 25, 2022
- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 25, 2022
Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 25, 2022
* Flat: latest data (2022-07-15T00:05:18.517Z)
{
  "date": "2022-07-15T00:05:18.517Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": -415,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": -209,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-16T00:05:37.097Z)
{
  "date": "2022-07-16T00:05:37.097Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 10943,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 9687,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-17T00:04:46.190Z)
{
  "date": "2022-07-17T00:04:46.190Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 248,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 54,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-18T00:04:51.054Z)
{
  "date": "2022-07-18T00:04:51.054Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 240,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 176,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* GraphQL is the source of data mode truth

- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Sub-Graph Packs: data model extensibility

Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>

* resources: grandstack blogs

Signed-off-by: Matt Young <halcyondude@gmail.com>

* resources: Cloud Native Application Bundles

Related to #42

Signed-off-by: Matt Young <halcyondude@gmail.com>

* sgp --> sgm, misc docs

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: initial project creation

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: WIP

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: WIP

Signed-off-by: Matt Young <halcyondude@gmail.com>

* add: github.com GraphQL schema SDL

octokit/graphql-schema@34d7f06
Signed-off-by: Matt Young <halcyondude@gmail.com>

* [chore] Basic fed2 boilerplate example, references

Signed-off-by: Matt Young <halcyondude@gmail.com>

* [chore] remove Angular sample app prototype

Signed-off-by: Matt Young <halcyondude@gmail.com>

Co-authored-by: flat-data <flat-data@users.noreply.github.com>
Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 25, 2022
- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 25, 2022
Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>
halcyondude added a commit that referenced this issue Aug 25, 2022
* Flat: latest data (2022-07-15T00:05:18.517Z)
{
  "date": "2022-07-15T00:05:18.517Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": -415,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": -209,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-16T00:05:37.097Z)
{
  "date": "2022-07-16T00:05:37.097Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 10943,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 9687,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-17T00:04:46.190Z)
{
  "date": "2022-07-17T00:04:46.190Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 248,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 54,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Flat: latest data (2022-07-18T00:04:51.054Z)
{
  "date": "2022-07-18T00:04:51.054Z",
  "files": [
    {
      "name": "landscape-items-clean.json",
      "deltaBytes": 240,
      "source": "https://landscape.cncf.io/data/items.json"
    },
    {
      "name": "landscape-items.json",
      "deltaBytes": 176,
      "source": "https://landscape.cncf.io/data/items.json"
    }
  ]
}

Signed-off-by: Matt Young <halcyondude@gmail.com>

* GraphQL is the source of data mode truth

- add landscape-graph-core-schema.gql
= put in place sgp extensibility mechanism

* #4
* #2
* #42

Signed-off-by: Matt Young <halcyondude@gmail.com>

* Sub-Graph Packs: data model extensibility

Related to:

#2
#4

Signed-off-by: Matt Young <halcyondude@gmail.com>

* resources: grandstack blogs

Signed-off-by: Matt Young <halcyondude@gmail.com>

* resources: Cloud Native Application Bundles

Related to #42

Signed-off-by: Matt Young <halcyondude@gmail.com>

* sgp --> sgm, misc docs

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: initial project creation

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: WIP

Signed-off-by: Matt Young <halcyondude@gmail.com>

* apps/panorama: WIP

Signed-off-by: Matt Young <halcyondude@gmail.com>

* add: github.com GraphQL schema SDL

octokit/graphql-schema@34d7f06
Signed-off-by: Matt Young <halcyondude@gmail.com>

* [chore] Basic fed2 boilerplate example, references

Signed-off-by: Matt Young <halcyondude@gmail.com>

* [chore] remove Angular sample app prototype

Signed-off-by: Matt Young <halcyondude@gmail.com>

Co-authored-by: flat-data <flat-data@users.noreply.github.com>
Signed-off-by: Matt Young <halcyondude@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants