Project commands (#26)

* feat: eventstore repository

* fix: remove gorm

* version

* feat: pkg

* feat: add some files for project

* feat: eventstore without eventstore-lib

* rename files

* gnueg

* fix: key json

* fix: add object

* fix: change imports

* fix: internal models

* fix: some imports

* fix: global model

* fix: add some functions on repo

* feat(eventstore): sdk

* fix(eventstore): search query

* fix(eventstore): rename app to eventstore

* delete empty test

* remove unused func

* merge master

* fix(eventstore): tests

* fix(models): delete unused struct

* fix: some funcitons

* feat(eventstore): implemented push events

* fix: move project eventstore to project package

* fix: change project eventstore funcs

* feat(eventstore): overwrite context data

* fix: change project eventstore

* fix: add project repo to mgmt server

* feat(types): SQL-config

* fix: commented code

* feat(eventstore): options to overwrite editor

* feat: auth interceptor and cockroach migrations

* fix: migrations

* fix: fix filter

* fix: not found on getbyid

* fix: add sequence

* fix: add some tests

* fix(eventstore): nullable sequence

* fix: add some tests

* merge

* fix: add some tests

* fix(migrations): correct statements for sequence

* fix: add some tests

* fix: add some tests

* fix: changes from mr

* Update internal/eventstore/models/field.go

Co-Authored-By: livio-a <livio.a@gmail.com>

* fix(eventstore): code quality

* fix: add types to aggregate/Event-types

* fix(eventstore): rename modifier* to editor*

* fix(eventstore): delete editor_org

* fix(migrations): remove editor_org field,
rename modifier_* to editor_*

* fix: generate files

* fix(eventstore): tests

* fix(eventstore): rename modifier to editor

* fix(migrations): add cluster migration,
fix(migrations): fix typo of host in clean clsuter

* fix(eventstore): move health

* fix(eventstore): AggregateTypeFilter aggregateType as param

* code quality

* feat: start implementing project members

* feat: remove member funcs

* feat: remove member model

* feat: remove member events

* feat: remove member repo model

* fix: better error func testing

* Update docs/local.md

Co-Authored-By: Silvan <silvan.reusser@gmail.com>

* Update docs/local.md

Co-Authored-By: Silvan <silvan.reusser@gmail.com>

* fix: mr requests

* fix: md file

Co-authored-by: adlerhurst <silvan.reusser@gmail.com>
Co-authored-by: livio-a <livio.a@gmail.com>
This commit is contained in:
Fabi
2020-04-07 13:23:04 +02:00
committed by GitHub
parent 007fc9e9bd
commit c07ed83c41
61 changed files with 5259 additions and 3481 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -3280,6 +3280,10 @@
},
"oidc_config": {
"$ref": "#/definitions/v1OIDCConfig"
},
"sequence": {
"type": "string",
"format": "uint64"
}
}
},
@@ -3832,6 +3836,10 @@
},
"domain": {
"type": "string"
},
"sequence": {
"type": "string",
"format": "uint64"
}
}
},
@@ -3874,6 +3882,10 @@
"creation_date": {
"type": "string",
"format": "date-time"
},
"sequence": {
"type": "string",
"format": "uint64"
}
}
},
@@ -3994,6 +4006,10 @@
"expire_warn_days": {
"type": "string",
"format": "uint64"
},
"sequence": {
"type": "string",
"format": "uint64"
}
}
},
@@ -4071,6 +4087,10 @@
"has_symbol": {
"type": "boolean",
"format": "boolean"
},
"sequence": {
"type": "string",
"format": "uint64"
}
}
},
@@ -4160,6 +4180,10 @@
"show_lock_out_failures": {
"type": "boolean",
"format": "boolean"
},
"sequence": {
"type": "string",
"format": "uint64"
}
}
},
@@ -4256,6 +4280,10 @@
},
"grant_id": {
"type": "string"
},
"sequence": {
"type": "string",
"format": "uint64"
}
}
},
@@ -4304,6 +4332,10 @@
},
"project_name": {
"type": "string"
},
"sequence": {
"type": "string",
"format": "uint64"
}
}
},
@@ -4366,6 +4398,10 @@
"creation_date": {
"type": "string",
"format": "date-time"
},
"sequence": {
"type": "string",
"format": "uint64"
}
}
},
@@ -4676,6 +4712,10 @@
"creation_date": {
"type": "string",
"format": "date-time"
},
"sequence": {
"type": "string",
"format": "uint64"
}
}
},
@@ -4812,6 +4852,10 @@
},
"group": {
"type": "string"
},
"sequence": {
"type": "string",
"format": "uint64"
}
}
},
@@ -4969,7 +5013,7 @@
"enum": [
"PROJECTSTATE_UNSPECIFIED",
"PROJECTSTATE_ACTIVE",
"PROJECTSSTATE_INACTIVE"
"PROJECTSTATE_INACTIVE"
],
"default": "PROJECTSTATE_UNSPECIFIED"
},
@@ -5231,6 +5275,10 @@
},
"street_address": {
"type": "string"
},
"sequence": {
"type": "string",
"format": "uint64"
}
}
},
@@ -5254,6 +5302,10 @@
},
"street_address": {
"type": "string"
},
"sequence": {
"type": "string",
"format": "uint64"
}
}
},
@@ -5269,6 +5321,10 @@
"is_email_verified": {
"type": "boolean",
"format": "boolean"
},
"sequence": {
"type": "string",
"format": "uint64"
}
}
},
@@ -5324,6 +5380,10 @@
},
"project_name": {
"type": "string"
},
"sequence": {
"type": "string",
"format": "uint64"
}
}
},
@@ -5470,6 +5530,10 @@
"is_phone_verified": {
"type": "boolean",
"format": "boolean"
},
"sequence": {
"type": "string",
"format": "uint64"
}
}
},
@@ -5502,6 +5566,10 @@
},
"user_name": {
"type": "string"
},
"sequence": {
"type": "string",
"format": "uint64"
}
}
},

View File

@@ -7,16 +7,32 @@ import (
)
func (s *Server) CreateProject(ctx context.Context, in *ProjectCreateRequest) (*Project, error) {
return nil, errors.ThrowUnimplemented(nil, "GRPC-mo34X", "Not implemented")
project, err := s.project.CreateProject(ctx, in.Name)
if err != nil {
return nil, err
}
return projectFromModel(project), nil
}
func (s *Server) UpdateProject(ctx context.Context, in *ProjectUpdateRequest) (*Project, error) {
return nil, errors.ThrowUnimplemented(nil, "GRPC-0o4fB", "Not implemented")
project, err := s.project.UpdateProject(ctx, projectUpdateToModel(in))
if err != nil {
return nil, err
}
return projectFromModel(project), nil
}
func (s *Server) DeactivateProject(ctx context.Context, in *ProjectID) (*Project, error) {
return nil, errors.ThrowUnimplemented(nil, "GRPC-4Sck8", "Not implemented")
project, err := s.project.DeactivateProject(ctx, in.Id)
if err != nil {
return nil, err
}
return projectFromModel(project), nil
}
func (s *Server) ReactivateProject(ctx context.Context, in *ProjectID) (*Project, error) {
return nil, errors.ThrowUnimplemented(nil, "GRPC-0oVre", "Not implemented")
project, err := s.project.ReactivateProject(ctx, in.Id)
if err != nil {
return nil, err
}
return projectFromModel(project), nil
}
func (s *Server) SearchProjects(ctx context.Context, in *ProjectSearchRequest) (*ProjectSearchResponse, error) {
@@ -24,7 +40,11 @@ func (s *Server) SearchProjects(ctx context.Context, in *ProjectSearchRequest) (
}
func (s *Server) ProjectByID(ctx context.Context, id *ProjectID) (*Project, error) {
return nil, errors.ThrowUnimplemented(nil, "GRPC-plV5x", "Not implemented")
project, err := s.project.ProjectByID(ctx, id.Id)
if err != nil {
return nil, err
}
return projectFromModel(project), nil
}
func (s *Server) GetGrantedProjectGrantByID(ctx context.Context, request *GrantedGrantID) (*ProjectGrant, error) {

View File

@@ -0,0 +1,45 @@
package grpc
import (
"github.com/caos/logging"
"github.com/caos/zitadel/internal/eventstore/models"
proj_model "github.com/caos/zitadel/internal/project/model"
"github.com/golang/protobuf/ptypes"
)
func projectFromModel(project *proj_model.Project) *Project {
creationDate, err := ptypes.TimestampProto(project.CreationDate)
logging.Log("GRPC-iejs3").OnError(err).Debug("unable to parse timestamp")
changeDate, err := ptypes.TimestampProto(project.ChangeDate)
logging.Log("GRPC-di7rw").OnError(err).Debug("unable to parse timestamp")
return &Project{
Id: project.ID,
State: projectStateFromModel(project.State),
CreationDate: creationDate,
ChangeDate: changeDate,
Name: project.Name,
Sequence: project.Sequence,
}
}
func projectStateFromModel(state proj_model.ProjectState) ProjectState {
switch state {
case proj_model.Active:
return ProjectState_PROJECTSTATE_ACTIVE
case proj_model.Inactive:
return ProjectState_PROJECTSTATE_INACTIVE
default:
return ProjectState_PROJECTSTATE_UNSPECIFIED
}
}
func projectUpdateToModel(project *ProjectUpdateRequest) *proj_model.Project {
return &proj_model.Project{
ObjectRoot: models.ObjectRoot{
ID: project.Id,
},
Name: project.Name,
}
}

View File

@@ -1,8 +1,11 @@
package grpc
import (
"github.com/caos/zitadel/internal/api/auth"
grpc_util "github.com/caos/zitadel/internal/api/grpc"
"github.com/caos/zitadel/internal/api/grpc/server/middleware"
mgmt_auth "github.com/caos/zitadel/internal/management/auth"
"github.com/caos/zitadel/internal/management/repository"
grpc_middleware "github.com/grpc-ecosystem/go-grpc-middleware"
"google.golang.org/grpc"
)
@@ -10,12 +13,18 @@ import (
var _ ManagementServiceServer = (*Server)(nil)
type Server struct {
port string
port string
project repository.ProjectRepository
verifier *mgmt_auth.TokenVerifier
authZ auth.Config
}
func StartServer(conf grpc_util.ServerConfig) *Server {
func StartServer(conf grpc_util.ServerConfig, authZ auth.Config, repo repository.Repository) *Server {
return &Server{
port: conf.Port,
port: conf.Port,
project: repo,
authZ: authZ,
verifier: mgmt_auth.Start(),
}
}
@@ -29,6 +38,7 @@ func (s *Server) GRPCServer() (*grpc.Server, error) {
grpc.UnaryInterceptor(
grpc_middleware.ChainUnaryServer(
middleware.ErrorHandler(),
ManagementService_Authorization_Interceptor(s.verifier, &s.authZ),
),
),
)