kyma-incubator / compass Goto Github PK
View Code? Open in Web Editor NEWA flexible and easy way to register, manage and group your applications
License: Apache License 2.0
A flexible and easy way to register, manage and group your applications
License: Apache License 2.0
Description
AC
AC
Description
Implement mocks for the Application domain. Prepare implementation for:
Remember about unit tests for all these parts.
As we discussed, we want our agent to be able to create Kubernetes' custom resources that will be consumed directly by Kyma's Headless CMS component. We don't want to rely on existing application-registry component to avoid having two registries in Kyma at the same time.
We should decide which Headless CMS features we want to support. For example:
single
, package
, index
)? At the moment, application-registry component in Kyma supports only single files.DocsTopic
properties do we want to keep in our schema (displayName
, description
)?Current definition of DocsTopic
custom resource, that is consumed by Headless CMS can be found here and here is the documentation and example of said custom resource.
When I execute the following query:
mutation {
result: createRuntime(
in: { name: "runtime-1", description: "runtime-1-description" }
) {
id
name
description
agentAuth {
credential {
... on BasicCredentialData {
username
password
}
... on OAuthCredentialData {
clientId
clientSecret
url
}
}
}
}
}
I got the following error:
{
"errors": [
{
"message": "must not be null",
"path": [
"result",
"agentAuth"
]
}
],
"data": null
}
Additionally, I do not see any errors in the director logs which is strange because of this is a server side error.
AC:
AC:
compass
subchart - #131Hint: See Use embedded etcd
flag in service-catalog
chart in Kyma, which works similarly to what we want to achieve.
AC:
compass
chart, which creates and upgrades database tables (for now, only one Runtime table). Prepare separate entry point for Director or even whole new Docker image with upgrade job.Description
Figure out how to implement Auth, which contains Auth. Auth has circular reference to itself.
Remember about RuntimeAuth collection for APIs, agentAuth
for Runtime and Auth
for FetchRequest, ApplicationWebhook.
Do we want to store Auth in a separate table? If so, agentAuth
and all auth
fields should be resolvers and there should be separate services.
Anyway, we will need one converter, so maybe it would be better to create auth
pseudo-domain.
Description
Implement mocks for the Application domain. Prepare implementation for:
Remember about unit tests for all these parts.
Description
Set AgentAuth for Runtime and auth for Application while creating them.
Figure out the API and what to generate - We should allow providing which credentials type should be generated. User has to be able to choose which auth type to generate
Description
For compass as an experimental module in the Kyma, we need to support already a way to persist and fetch data in a given tenant.
AC
AC
AC
AC:.
List
method. Skip pagination for now.Pagination will follow in the next task: #53
Description
Implement Agent and fulfill the contract between Agent and Director/Connector.
AC
Stretch (depends on the status of connector migrated to compass):
Description
Some Director mutations (related to the creation of Application subresources, e.g. addApplicationWebhook
) don't check if an Application with the specified ID actually exists. Right now this happens with Webhooks, Documents, APIs and EventAPIs.
There is also a case where when adding AuthRuntime to API, Runtime should be checked.
Those services should get Application/Runtime service injected and use it to check if Application/Runtime with received ID exists.
Expected result
Attempt to create a subresource of Application (eg. Webhook), when there's no application with specified ID should result in an error.
Actual result
Subresource is created even when an Application with passed ID doesn't exist.
Steps to reproduce
foo
addApplicationWebhook
mutation with applicationID
parameter set to foo
RuntimeHelper - is a new name for RuntimeProvisioner. As we found that, that agent could be installed into already existing Runtime.
AC
Notes
Description
Implement mocks for the Application domain. Prepare implementation for:
Remember about unit tests for all these parts.
AC
Description
Reasons
AC
Description
Implement mocks for the Application domain. Prepare implementation for:
Remember about unit tests for all these parts.
Description
Implement mocks for the Application domain. Prepare implementation for:
Remember about unit tests for all these parts.
AC
Description
Repository layer for application and other subdomains.
AC
That story will make all compass APIs to be persisted in the DB
Description
Structure Director project similarly to Console Backend Service
AC
Description
In our first architecture phase we designed compass as a single source of truth for credentials configuration between Applications and Runtimes. See: for example API credentials flow: https://github.com/kyma-incubator/compass/blob/master/docs/architecture/api-credentials-flows.md
AC
AC
DocumentInput
defines 2 fields, that are missing in the Document
:APISpecInput
defines format as a required field, but APISpec
defines it as an optional field.EventAPISpec
.AC:
Description
Currently we're returning all Go errors to the end user. We should improve them.
AC
Technical requirements:
gqlerrors
package from Console Backend Service or write something similar, but betterlogrus
AC
From a user perspective, Director GraphQL API should be visible as a single-tenant API.
AC
Links
Description
Description
AC:
internal/graphql/examples
to match current API with mock implementation.Description
Reasons
Labels and Annotations could be extended very soon. We need to have flexibility with the types
AC
APIDefinition
versioning - to know when an APIDefiniton
is a new version for another APIDefinition
.AC:
Description
The following link may be useful: https://github.com/stratumn/graphql-pagination-go/blob/master/array_list.go
Description
Use MILV for link validation in docs. Run the tool as CI step for all changed Markdown files.
Reasons
kyma-project
organizationAC
document Label and LabelsDefinitons
implement LabelDefinition qGL Type and provide CRD (Update out of scope). Deletion removes a label from all entities (Apps and Runtimes).
default scenario already exists, plus every app and runtime (if not specified) has that label in. LabelDefiniton already exists, we support only GET operation.
implement labels
qGL Type to mutate and query scenarios
validation during Label creation
remove annotations (we dont see a need for them right now)
filtering by labels implemented on runtimes and applications
Out of scope:
Description
Add testing framework to compass project.
Reasons
Allow to execute integration test againts k8s cluster.
AC
AC
Description
We need a place in compass project where user could understand how APIs interact wit each other. We need to provide some type of diagrams + nice descriptions about them, see details in below AC.
AC
Follow Kyma diagram guidelines: https://github.com/kyma-project/community/blob/master/guidelines/content-guidelines/diagrams.md
Description
As a first step towards standalone compass cockpit UI, provide a UI application ("Compass Cockpit").
It should be part of compass chart :
The Compass Cockpit should only expose Management Plane API :
The compass cockpit should operate in multi tenant mode - All 3 Entities (Application definitions, Runtimes, Groups ) belong to a tenant and the User should be able to switch tenants in the cockpit.
The Compass Cockpit cannot expose any:
AC:
Description
We need to support two ways of using Eventing. Application can:
Reasons
We need that to support system with already configured eventing system
AC
type EventAPIDefinition {
id: ID!
spec: EventSpec!
version: Version
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.