This is an automated email from the ASF dual-hosted git repository. littlecui pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-service-center.git
The following commit(s) were added to refs/heads/master by this push: new 4cdf3e2d [fix] Update docs (#1386) 4cdf3e2d is described below commit 4cdf3e2d0a4fb9c7b342c4bc0c7cee04f09eee38 Author: little-cui <sure_0...@qq.com> AuthorDate: Tue Feb 7 19:09:36 2023 +0800 [fix] Update docs (#1386) --- docs/conf.py | 4 +- docs/design-guides/design.rst | 440 ++++++++++++++++++++- docs/dev-guides.rst | 5 +- docs/dev-guides/dev-guide.md | 10 +- docs/dev-guides/extendmodule.md | 15 +- .../integration-istio.md | 6 +- docs/{ => dev-guides}/integration-istio.png | Bin .../istio-cli.png} | Bin docs/dev-guides/quota.md | 4 +- docs/index.rst | 8 +- docs/release.rst | 4 - docs/user-guides.rst | 16 +- docs/user-guides/rbac.md | 18 +- docs/user-guides/ux.rst | 2 +- examples/etcd_data_struct.yaml | 142 ------- examples/mongodb_data_struct.yaml | 273 ------------- istio/README.md | 4 +- istio/pkg/utils/config.go | 2 - 18 files changed, 480 insertions(+), 473 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index a64db034..17299b8f 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -98,9 +98,9 @@ pygments_style = 'sphinx' # a list of builtin themes. # html_theme = 'sphinx_rtd_theme' -html_static_path = ['_static'] +html_static_path = [] html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] -html_logo = 'img/logo.svg' +html_logo = 'logo.png' html_theme_options = { 'logo_only': True, 'display_version': False, diff --git a/docs/design-guides/design.rst b/docs/design-guides/design.rst index 2dd0a200..bf832bad 100644 --- a/docs/design-guides/design.rst +++ b/docs/design-guides/design.rst @@ -1,8 +1,5 @@ -Design Guides -============= - Service-Center Design ---------------------- +============= Service-Center(SC) is a service registry that allows services to register their instance information and to discover providers of a given @@ -45,8 +42,8 @@ following list of tasks. .. image:: onStartup.PNG -Communication between Consumer -> Provider -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Communication +^^^^^^^^^^^^^ Once the bootup is successful then the consumer can communicate with providers flawlessly, below is the diagram illustrating the @@ -67,4 +64,433 @@ communication between provider and consumer. Note: Feel free to contribute to this document. .. _java-chassis: https://github.com/ServiceComb/java-chassis -.. _go-chassis: https://github.com/go-chassis/go-chassis \ No newline at end of file +.. _go-chassis: https://github.com/go-chassis/go-chassis + + +Storage structure +^^^^^^^^^^^^^^^^^ + +Backend kind is ETCD + +.. code:: yaml + + # services + # /cse-sr/ms/files/{domain}/{project}/{serviceId} + /cse-sr/ms/files/default/default/7062417bf9ebd4c646bb23059003cea42180894a: + { + "serviceId": "7062417bf9ebd4c646bb23059003cea42180894a", + "appId": "default", + "serviceName": "SERVICECENTER", + "description": "A default service", + "version": "0.0.1", + "level": "BACK", + "schemas": [ + "firstSchema", + "secondSchema" + ], + "paths": [{ + "path": "/opt/tomcat/webapp", + "property": { + "allowCrossApp": "true" + } + }], + "status": "UP", + "properties": { + "allowCrossApp": "true" + }, + "timestamp": "1592570701", + "framework": { + "name": "UNKNOWN", + "version": "0.0.1" + }, + "alias": "SERVICECENTER", + "modTimestamp": "1592570701", + "environment": "development" + } + + # /cse-sr/ms/indexes/{domain}/{project}/{environment}/{appId}/{serviceName}/{serviceVersion} + /cse-sr/ms/indexes/default/default/development/default/SERVICECENTER/0.0.1: + "7062417bf9ebd4c646bb23059003cea42180894a" + + # /cse-sr/ms/alias/{domain}/{project}/{environment}/{appId}/{serviceName}/{serviceVersion} + /cse-sr/ms/alias/default/default/development/default/SERVICECENTER/0.0.1: + "7062417bf9ebd4c646bb23059003cea42180894a" + + # instances + # /cse-sr/inst/files/{domain}/{project}/{serviceId}/{instanceId} + /cse-sr/inst/files/default/default/7062417bf9ebd4c646bb23059003cea42180894a/b0ffb9feb22a11eaa76a08002706c83e: + { + "instanceId": "b0ffb9feb22a11eaa76a08002706c83e", + "serviceId": "7062417bf9ebd4c646bb23059003cea42180894a", + "endpoints": ["rest://127.0.0.1:30100/"], + "hostName": "tian-VirtualBox", + "status": "UP", + "healthCheck": { + "mode": "push", + "interval": 30, + "times": 3 + }, + "timestamp": "1592570701", + "modTimestamp": "1592570701", + "version": "0.0.1" + } + + # /cse-sr/inst/leases/{domain}/{project}/{serviceId}/{instanceId} + /cse-sr/inst/leases/default/default/7062417bf9ebd4c646bb23059003cea42180894a/b0ffb9feb22a11eaa76a08002706c83e: + "leaseId" + + # schemas + # /cse-sr/ms/schemas/{domain}/{project}/{serviceId}/{schemaId} + /cse-sr/ms/schemas/default/default/7062417bf9ebd4c646bb23059003cea42180894a/first-schema: + "schema" + + # /cse-sr/ms/schema-sum/{domain}/{project}/{serviceId}/{schemaId} + /cse-sr/ms/schema-sum/default/default/7062417bf9ebd4c646bb23059003cea42180894a/first-schema: + "schemaSummary" + + # dependencies + # /cse-sr/ms/dep-queue/{domain}/{project}/{serviceId}/{uuid} + /cse-sr/ms/dep-queue/default/default/7062417bf9ebd4c646bb23059003cea42180894a/0: + { + "consumer": { + "tenant": "default/default", + "project": "project", + "appId": "appId", + "serviceName": "ServiceCenter", + "version": "0.0.1", + "environment": "development", + "alias": "serviceCenter" + }, + "providers": [{ + "tenant": "default/default", + "project": "project", + "appId": "appId", + "serviceName": "ServiceCenterProvider", + "version": "0.0.2", + "environment": "development", + "alias": "serviceCenterProvider" + }], + "override": true + } + + # tags + # /cse-sr/ms/tags/{domain}/{project}/{serviceId} + /cse-sr/ms/tags/default/default/7062417bf9ebd4c646bb23059003cea42180894a: + { + "a": "1" + } + + # rules + # /cse-sr/ms/rules/{domain}/{project}/{serviceId}/{ruleId} + /cse-sr/ms/rules/default/default/7062417bf9ebd4c646bb23059003cea42180894a/Deny: + { + "ruleId": "Deny", + "attribute": "denylist", + "pattern": "Test*", + "description": "test BLACK" + } + + # /cse-sr/ms/rule-indexes/{domain}/{project}/{serviceId}/{attribute}/{pattern} + /cse-sr/ms/rule-indexes/default/default/7062417bf9ebd4c646bb23059003cea42180894a/denylist/Test: + "ruleId" + + # auth + # /cse-sr/accounts/{accountName} + /cse-sr/accounts/Alice: + { + "_id": "xxx", + "account": "account_name", + "password": "password", + "role": "admin", + "tokenExpirationTime": "1500519927", + "currentPassword": "password", + "status": "normal" + } + # record role binding to account + /cse-sr/idx-role-account/{role}/{account}: + {no value} + # domain + # /cse-sr/domains/{domain} + /cse-sr/domains/default: + + # project + # /cse-sr/domains/{domain}/{project} + /cse-sr/projects/default/default: + +Backend kind is Mongo + +.. code:: yaml + + #type Service struct { + # Domain string `json:"domain,omitempty"` + # Project string `json:"project,omitempty"` + # Tags map[string]string `json:"tags,omitempty"` + # Service *pb.MicroService `json:"service,omitempty"` + #} + + #type MicroService struct { + # ServiceId string `protobuf:"bytes,1,opt,name=serviceId" json:"serviceId,omitempty" bson:"service_id"` + # AppId string `protobuf:"bytes,2,opt,name=appId" json:"appId,omitempty" bson:"app"` + # ServiceName string `protobuf:"bytes,3,opt,name=serviceName" json:"serviceName,omitempty" bson:"service_name"` + # Version string `protobuf:"bytes,4,opt,name=version" json:"version,omitempty"` + # Description string `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"` + # Level string `protobuf:"bytes,6,opt,name=level" json:"level,omitempty"` + # Schemas []string `protobuf:"bytes,7,rep,name=schemas" json:"schemas,omitempty"` + # Paths []*ServicePath `protobuf:"bytes,10,rep,name=paths" json:"paths,omitempty"` + # Status string `protobuf:"bytes,8,opt,name=status" json:"status,omitempty"` + # Properties map[string]string `protobuf:"bytes,9,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + # Timestamp string `protobuf:"bytes,11,opt,name=timestamp" json:"timestamp,omitempty"` + # Providers []*MicroServiceKey `protobuf:"bytes,12,rep,name=providers" json:"providers,omitempty"` + # Alias string `protobuf:"bytes,13,opt,name=alias" json:"alias,omitempty"` + # LBStrategy map[string]string `protobuf:"bytes,14,rep,name=LBStrategy" json:"LBStrategy,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value" bson:"lb_strategy"` + # ModTimestamp string `protobuf:"bytes,15,opt,name=modTimestamp" json:"modTimestamp,omitempty" bson:"mod_timestamp"` + # Environment string `protobuf:"bytes,16,opt,name=environment" json:"environment,omitempty" bson:"env"` + # RegisterBy string `protobuf:"bytes,17,opt,name=registerBy" json:"registerBy,omitempty" bson:"register_by"` + # Framework *FrameWork `protobuf:"bytes,18,opt,name=framework" json:"framework,omitempty"` + #} + + #collection: service + { + "_id" : ObjectId("6021fb9527d99d766f82e44f"), + "domain" : "new_default", + "project" : "new_default", + "tags" : null, + "service" : { + "service_id" : "6ea4d1c36a8311eba78dfa163e176e7b", + "app" : "dep_create_dep_group", + "service_name" : "dep_create_dep_consumer", + "version" : "1.0.0", + "description" : "", + "level" : "FRONT", + "schemas" : null, + "paths" : null, + "status" : "UP", + "properties" : null, + "timestamp" : "1612839829", + "providers" : null, + "alias" : "", + "lb_strategy" : null, + "mod_timestamp" : "1612839829", + "env" : "", + "register_by" : "", + "framework" : null + } + } + + #type Instance struct { + # Domain string `json:"domain,omitempty"` + # Project string `json:"project,omitempty"` + # RefreshTime time.Time `json:"refreshTime,omitempty" bson:"refresh_time"` + # Instance *pb.MicroServiceInstance `json:"instance,omitempty"` + #} + + #type MicroServiceInstance struct { + # InstanceId string `protobuf:"bytes,1,opt,name=instanceId" json:"instanceId,omitempty" bson:"instance_id"` + # ServiceId string `protobuf:"bytes,2,opt,name=serviceId" json:"serviceId,omitempty" bson:"service_id"` + # Endpoints []string `protobuf:"bytes,3,rep,name=endpoints" json:"endpoints,omitempty"` + # HostName string `protobuf:"bytes,4,opt,name=hostName" json:"hostName,omitempty"` + # Status string `protobuf:"bytes,5,opt,name=status" json:"status,omitempty"` + # Properties map[string]string `protobuf:"bytes,6,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + # HealthCheck *HealthCheck `protobuf:"bytes,7,opt,name=healthCheck" json:"healthCheck,omitempty" bson:"health_check"` + # Timestamp string `protobuf:"bytes,8,opt,name=timestamp" json:"timestamp,omitempty"` + # DataCenterInfo *DataCenterInfo `protobuf:"bytes,9,opt,name=dataCenterInfo" json:"dataCenterInfo,omitempty" bson:"data_center_info"` + # ModTimestamp string `protobuf:"bytes,10,opt,name=modTimestamp" json:"modTimestamp,omitempty" bson:"mod_timestamp"` + # Version string `protobuf:"bytes,11,opt,name=version" json:"version,omitempty"` + #} + + # collection: instance + { + "_id" : ObjectId("60222c6f4fe067987f40803e"), + "domain" : "default", + "project" : "default", + "refresh_time" : ISODate("2021-02-09T06:32:15.562Z"), + "instance" : { + "instance_id" : "8cde54a46aa011ebab42fa163e176e7b", + "service_id" : "8cddc7ce6aa011ebab40fa163e176e7b", + "endpoints" : [ + "find:127.0.0.9:8080" + ], + "hostname" : "UT-HOST-MS", + "status" : "UP", + "properties" : null, + "health_check" : { + "mode" : "push", + "port" : 0, + "interval" : 30, + "times" : 3, + "url" : "" + }, + "timestamp" : "1612852335", + "data_center_info" : null, + "mod_timestamp" : "1612852335", + "version" : "1.0.0" + } + } + + #type Schema struct { + # Domain string `json:"domain,omitempty"` + # Project string `json:"project,omitempty"` + # ServiceId string `json:"serviceId,omitempty" bson:"service_id"` + # SchemaId string `json:"schemaId,omitempty" bson:"schema_id"` + # Schema string `json:"schema,omitempty"` + # SchemaSummary string `json:"schemaSummary,omitempty" bson:"schema_summary"` + #} + + # collection schema + { + "_id" : ObjectId("6021fb9827d99d766f82e4f7"), + "domain" : "default", + "project" : "default", + "service_id" : "70302da16a8311eba7cbfa163e176e7b", + "schema_id" : "ServiceCombTestTheLimitOfSchemasServiceMS19", + "schema" : "ServiceCombTestTheLimitOfSchemasServiceMS19", + "schema_summary" : "ServiceCombTestTheLimitOfSchemasServiceMS19" + } + + #type Rule struct { + # Domain string `json:"domain,omitempty"` + # Project string `json:"project,omitempty"` + # ServiceId string `json:"serviceId,omitempty" bson:"service_id"` + # Rule *pb.ServiceRule `json:"rule,omitempty"` + #} + + #type ServiceRule struct { + # RuleId string `protobuf:"bytes,1,opt,name=ruleId" json:"ruleId,omitempty" bson:"rule_id"` + # RuleType string `protobuf:"bytes,2,opt,name=ruleType" json:"ruleType,omitempty" bson:"rule_type"` + # Attribute string `protobuf:"bytes,3,opt,name=attribute" json:"attribute,omitempty"` + # Pattern string `protobuf:"bytes,4,opt,name=pattern" json:"pattern,omitempty"` + # Description string `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"` + # Timestamp string `protobuf:"bytes,6,opt,name=timestamp" json:"timestamp,omitempty"` + # ModTimestamp string `protobuf:"bytes,7,opt,name=modTimestamp" json:"modTimestamp,omitempty" bson:"mod_timestamp"` + #} + # collection rules + { + "_id" : ObjectId("6021fb9727d99d766f82e48a"), + "domain" : "default", + "project" : "default", + "service_id" : "7026973b6a8311eba792fa163e176e7b", + "rule" : { + "rule_id" : "702897cf6a8311eba79dfa163e176e7b", + "rule_type" : "BLACK", + "attribute" : "ServiceName", + "pattern" : "18", + "description" : "test white", + "timestamp" : "1612839831", + "mod_timestamp" : "1612839831" + } + } + + #type ConsumerDep struct { + # Domain string `json:"domain,omitempty"` + # Project string `json:"project,omitempty"` + # ConsumerId string `json:"consumerId,omitempty" bson:"consumer_id"` + # UUId string `json:"uuId,omitempty" bson:"uu_id"` + # ConsumerDep *pb.ConsumerDependency `json:"consumerDep,omitempty" bson:"consumer_dep"` + #} + + #type ConsumerDependency struct { + # Consumer *MicroServiceKey `protobuf:"bytes,1,opt,name=consumer" json:"consumer,omitempty"` + # Providers []*MicroServiceKey `protobuf:"bytes,2,rep,name=providers" json:"providers,omitempty"` + # Override bool `protobuf:"varint,3,opt,name=override" json:"override,omitempty"` + #} + + #type MicroServiceKey struct { + # Tenant string `protobuf:"bytes,1,opt,name=tenant" json:"tenant,omitempty"` + # Environment string `protobuf:"bytes,2,opt,name=environment" json:"environment,omitempty" bson:"env"` + # AppId string `protobuf:"bytes,3,opt,name=appId" json:"appId,omitempty" bson:"app"` + # ServiceName string `protobuf:"bytes,4,opt,name=serviceName" json:"serviceName,omitempty" bson:"service_name"` + # Alias string `protobuf:"bytes,5,opt,name=alias" json:"alias,omitempty"` + # Version string `protobuf:"bytes,6,opt,name=version" json:"version,omitempty"` + #} + + # collection dependencies + { + "_id" : ObjectId("6021fb9527d99d766f82e45f"), + "domain" : "new_default", + "project" : "new_default", + "consumer_id" : "6ea4d1c36a8311eba78dfa163e176e7b", + "uu_id" : "6eaeb1dd6a8311eba790fa163e176e7b", + "consumer_dep" : { + "consumer" : { + "tenant" : "new_default/new_default", + "env" : "", + "app" : "dep_create_dep_group", + "service_name" : "dep_create_dep_consumer", + "alias" : "", + "version" : "1.0.0" + }, + "providers" : null, + "override" : false + } + } + + #type DependencyRule struct { + # Type string `json:"type,omitempty"` + # Domain string `json:"domain,omitempty"` + # Project string `json:"project,omitempty"` + # ServiceKey *pb.MicroServiceKey `json:"serviceKey,omitempty" bson:"service_key"` + # Dep *pb.MicroServiceDependency `json:"dep,omitempty"` + #} + + #type MicroServiceKey struct { + # Tenant string `protobuf:"bytes,1,opt,name=tenant" json:"tenant,omitempty"` + # Environment string `protobuf:"bytes,2,opt,name=environment" json:"environment,omitempty" bson:"env"` + # AppId string `protobuf:"bytes,3,opt,name=appId" json:"appId,omitempty" bson:"app"` + # ServiceName string `protobuf:"bytes,4,opt,name=serviceName" json:"serviceName,omitempty" bson:"service_name"` + # Alias string `protobuf:"bytes,5,opt,name=alias" json:"alias,omitempty"` + # Version string `protobuf:"bytes,6,opt,name=version" json:"version,omitempty"` + #} + + #type MicroServiceDependency struct { + # Dependency []*MicroServiceKey `json:"Dependency,omitempty"` + #} + + # collection dependencies + { + "_id" : ObjectId("6022302751a77062a95dd0da"), + "service_key" : { + "app" : "create_dep_group", + "env" : "production", + "service_name" : "create_dep_consumer", + "tenant" : "default/default", + "version" : "1.0.0" + }, + "type" : "c", + "dep" : { + "dependency" : [ + { + "tenant" : "default/default", + "env" : "", + "app" : "service_group_provider", + "service_name" : "service_name_provider", + "alias" : "", + "version" : "latest" + } + ] + } + } + + + #type Account struct { + # ID string `json:"id,omitempty"` + # Name string `json:"name,omitempty"` + # Password string `json:"password,omitempty"` + # Roles []string `json:"roles,omitempty"` + # TokenExpirationTime string `json:"tokenExpirationTime,omitempty" bson:"token_expiration_time"` + # CurrentPassword string `json:"currentPassword,omitempty" bson:"current_password"` + # Status string `json:"status,omitempty"` + #} + + # collection account + { + "_id" : ObjectId("60223e99184f264aee398238"), + "id" : "6038bf9f6aab11ebbcdefa163e176e7b", + "name" : "test-account1", + "password" : "$2a$14$eYyD9DiOA1vGXOyhPTjbhO6CYuGnOVt8VQ8V/sWEmExyvwOQeNI2i", + "roles" : [ + "admin" + ], + "token_expiration_time" : "2020-12-30", + "current_password" : "tnuocca-tset1", + "status" : "" + } diff --git a/docs/dev-guides.rst b/docs/dev-guides.rst index 4479c03e..2d166d93 100644 --- a/docs/dev-guides.rst +++ b/docs/dev-guides.rst @@ -1,4 +1,4 @@ -Development guide +Development Guides ====================================== .. toctree:: @@ -10,6 +10,7 @@ Development guide dev-guides/quota.md dev-guides/multidcs.rst dev-guides/multidcs2.rst - dev-guides/helm.md dev-guides/kubeclusters.rst + dev-guides/helm.md + dev-guides/integration-istio.md dev-guides/profiling.md diff --git a/docs/dev-guides/dev-guide.md b/docs/dev-guides/dev-guide.md index b119c416..1c8ba625 100644 --- a/docs/dev-guides/dev-guide.md +++ b/docs/dev-guides/dev-guide.md @@ -1,12 +1,12 @@ -# Development Guide +# Development with Service-Center This chapter is about how to implement the feature of micro-service discovery with ServiceCenter, -and you can get more detail at [here](https://github.com/apache/servicecomb-service-center/blob/master/server/core/swagger/v3.yaml) +and you can get more detail at [here](https://github.com/apache/servicecomb-service-center/blob/master/docs/openapi/v4.yaml) ## Micro-service registration ```bash curl -X POST \ - http://127.0.0.1:30100/registry/v3/microservices \ + http://127.0.0.1:30100/v4/default/registry/microservices \ -H 'content-type: application/json' \ -H 'x-domain-name: default' \ -d '{ @@ -34,7 +34,7 @@ according to the ServiceCenter definition: One process should be registered as o ```bash curl -X POST \ - http://127.0.0.1:30100/registry/v3/microservices/a3fae679211211e8a831286ed488fc1b/instances \ + http://127.0.0.1:30100/v4/default/registry/microservices/a3fae679211211e8a831286ed488fc1b/instances \ -H 'content-type: application/json' \ -H 'x-domain-name: default' \ -d '{ @@ -64,7 +64,7 @@ the next step is that discovery the micro-service instance by service name and v ```bash curl -X GET \ - 'http://127.0.0.1:30100/registry/v3/instances?appId=default&serviceName=DemoService&version=latest' \ + 'http://127.0.0.1:30100/v4/default/registry/instances?appId=default&serviceName=DemoService&version=latest' \ -H 'content-type: application/json' \ -H 'x-consumerid: a3fae679211211e8a831286ed488fc1b' \ -H 'x-domain-name: default' diff --git a/docs/dev-guides/extendmodule.md b/docs/dev-guides/extendmodule.md index f48d7cb0..5cd30ce9 100644 --- a/docs/dev-guides/extendmodule.md +++ b/docs/dev-guides/extendmodule.md @@ -3,20 +3,21 @@ Service center(SC) support an extend modules mechanism that developers can new some features in SC easily. ## Just 4 steps, you can add a module in service center -1. Create a module(package) under the github.com/apache/servicecomb-service-center/server package. +1. Create a module(package) under the github.com/apache/servicecomb-service-center/server/resource package. 1. Here you just need to implement the controller and service interfaces in your module. 1. And register service to SC when the module initializes. 1. Import the package in github.com/apache/servicecomb-service-center/server/bootstrap/bootstrap.go ## Quit start for the RESTful module -Implement the [ROAServantService](https://github.com/apache/servicecomb-service-center/tree/master/pkg/rest/roa.go) interface. +Implement the [RouteGroup](https://github.com/apache/servicecomb-service-center/tree/master/pkg/rest/types.go) interface. ```go package hello import ( "net/http" + "github.com/apache/servicecomb-service-center/pkg/rest" ) @@ -43,10 +44,10 @@ Register the service in SC ROA framework when the module initializes. ```go package hello -import roa "github.com/apache/servicecomb-service-center/pkg/rest" +import "github.com/apache/servicecomb-service-center/pkg/rest" func init() { - roa.RegisterServant(&HelloService{}) + rest.RegisterServant(&HelloService{}) } ``` @@ -54,9 +55,5 @@ Modify [bootstarp.go](https://github.com/apache/servicecomb-service-center/tree/ ```go // module -import _ "github.com/apache/servicecomb-service-center/server/hello" +import _ "github.com/apache/servicecomb-service-center/server/resource/hello" ``` - -## About GRPC module - -To see [govern](https://github.com/apache/servicecomb-service-center/tree/master/server/rest/govern) module for help. \ No newline at end of file diff --git a/docs/user-guides/integration-istio.md b/docs/dev-guides/integration-istio.md similarity index 98% rename from docs/user-guides/integration-istio.md rename to docs/dev-guides/integration-istio.md index 74ab8448..c7d6b833 100644 --- a/docs/user-guides/integration-istio.md +++ b/docs/dev-guides/integration-istio.md @@ -1,6 +1,8 @@ -# User Guide +# Integrate with Istio This instructions will lead you to getting start with using Servicecomb-service-center-istio +![image](integration-istio.png) + ## 1. Install dependencies This tool can be used both inside a k8s cluster and a standalone service running on a VM. @@ -61,7 +63,7 @@ kubectl apply -f manifest/deployment.yaml ``` ### 2.4 Input parameters -![image](integration-istio.png) +![image](istio-cli.png) ## 3 Example We will use [consumer-provider](../../istio/examples/consumer-provider/) example to show how to use this tool. diff --git a/docs/integration-istio.png b/docs/dev-guides/integration-istio.png similarity index 100% rename from docs/integration-istio.png rename to docs/dev-guides/integration-istio.png diff --git a/docs/user-guides/integration-istio.png b/docs/dev-guides/istio-cli.png similarity index 100% rename from docs/user-guides/integration-istio.png rename to docs/dev-guides/istio-cli.png diff --git a/docs/dev-guides/quota.md b/docs/dev-guides/quota.md index f9b18a98..01497773 100644 --- a/docs/dev-guides/quota.md +++ b/docs/dev-guides/quota.md @@ -1,4 +1,6 @@ -# Quota plugins +# Extend plugins + +The following takes the extended quota management plugin as an example. ### Standard Plugins diff --git a/docs/index.rst b/docs/index.rst index 4f6dbdb0..d4e3d0dc 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -17,15 +17,15 @@ Welcome to servicecomb-service-center's documentation! .. toctree:: :maxdepth: 2 - :caption: Development Documentations + :caption: Design Documentations - dev-guides + design-guides .. toctree:: :maxdepth: 2 - :caption: Design Documentations + :caption: Development Documentations - design-guides + dev-guides .. toctree:: :maxdepth: 2 diff --git a/docs/release.rst b/docs/release.rst index 69652720..9d4a4cd0 100644 --- a/docs/release.rst +++ b/docs/release.rst @@ -6,7 +6,3 @@ Release Notes :glob: release/Readme.md - release/releaseNotes-1.0.0.md - release/releaseNotes-1.0.0-m1.md - release/releaseNotes-1.0.0-m2.md - release/releaseNotes-1.1.0.md \ No newline at end of file diff --git a/docs/user-guides.rst b/docs/user-guides.rst index 6f918a4d..f4ceed8f 100644 --- a/docs/user-guides.rst +++ b/docs/user-guides.rst @@ -5,18 +5,18 @@ User Guides :maxdepth: 4 :glob: - user-guides/pr-raising-guide.md + user-guides/ux.md + user-guides/sc-cluster.rst user-guides/security-tls.md user-guides/data-source.rst - user-guides/heartbeat.rst - user-guides/sc-cluster.rst - user-guides/integration-grafana.rst user-guides/quota.md + user-guides/limits.md + user-guides/metrics.md plugin-tracing-guides + user-guides/heartbeat.rst user-guides/rbac.md - user-guides/syncer.md user-guides/fast-registration.md - user-guides/ux.md - user-guides/integration-istio.md - user-guides/limits.md user-guides/turbo.md + user-guides/syncer.md + user-guides/integration-grafana.rst + user-guides/pr-raising-guide.md diff --git a/docs/user-guides/rbac.md b/docs/user-guides/rbac.md index 05bd8157..a8216f68 100644 --- a/docs/user-guides/rbac.md +++ b/docs/user-guides/rbac.md @@ -41,7 +41,7 @@ To securely distribute your root account and private key, you can use kubernetes [secret](https://kubernetes.io/zh/docs/tasks/inject-data-application/distribute-credentials-secure/) ### Generate a token Token is the only credential to access rest API, before you access any API, you need to get a token from service center -```shell script +```shell curl -X POST \ http://127.0.0.1:30100/v4/token \ -d '{"name":"root", @@ -58,7 +58,7 @@ in each request you must add token to http header: Authorization: Bearer {token} ``` for example: -```shell script +```shell curl -X GET \ 'http://127.0.0.1:30100/v4/default/registry/microservices/{service-id}/instances' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTI4OTQ1NTEsInVzZXIiOiJyb290In0.FfLOSvVmHT9qCZSe_6iPf4gNjbXLwCrkXxKHsdJoQ8w' @@ -66,7 +66,7 @@ curl -X GET \ ### Change password You must supply a current password and token to update to new password -```shell script +```shell curl -X POST \ http://127.0.0.1:30100/v4/account/root/password \ -H 'Authorization: Bearer {your_token}' \ @@ -79,7 +79,7 @@ curl -X POST \ ### create a new account You can create new account named "peter", and his role is developer. How to add roles and allocate resources please refer to next section. -```shell script +```shell curl -X POST \ http://127.0.0.1:30100/v4/account \ -H 'Accept: */*' \ @@ -213,7 +213,7 @@ A role "TeamA" can get and create any services but can only delete or update "or You can also create a new role and give perms to this role. 1. You can add new role and allocate resources to new role. For example, a new role named "tester" and allocate resources to "tester". -```shell script +```shell curl -X POST \ http://127.0.0.1:30100/v4/role \ -H 'Accept: */*' \ @@ -251,7 +251,7 @@ curl -X POST \ }' ``` 2.then, assigning roles "tester" and "tester2" to user account "peter", "tester2" is a empty role has not any resources. -```shell script +```shell curl -X POST \ http://127.0.0.1:30100/v4/account \ -H 'Accept: */*' \ @@ -265,7 +265,7 @@ curl -X POST \ ``` 3.Next, generate a token for the user. -```shell script +```shell curl -X POST \ http://127.0.0.1:30100/v4/token \ -d '{ @@ -277,7 +277,7 @@ curl -X POST \ 4.finally, user "peter" carry token to access resources. for example -```shell script +```shell curl -X POST \ http://127.0.0.1:30100/v4/default/registry/microservices \ -H 'Accept: */*' \ @@ -293,7 +293,7 @@ curl -X POST \ ``` would be ok. -```shell script +```shell curl -X DElETE \ http://127.0.0.1:30100/v4/default/registry/microservices \ -H 'Accept: */*' \ diff --git a/docs/user-guides/ux.rst b/docs/user-guides/ux.rst index 7cb0a63a..51f4699b 100644 --- a/docs/user-guides/ux.rst +++ b/docs/user-guides/ux.rst @@ -1,4 +1,4 @@ -Deploying UX +Deploying Portal ======================== https://github.com/apache/servicecomb-service-center/blob/master/ux diff --git a/examples/etcd_data_struct.yaml b/examples/etcd_data_struct.yaml deleted file mode 100644 index bb184243..00000000 --- a/examples/etcd_data_struct.yaml +++ /dev/null @@ -1,142 +0,0 @@ -# services -# /cse-sr/ms/files/{domain}/{project}/{serviceId} -/cse-sr/ms/files/default/default/7062417bf9ebd4c646bb23059003cea42180894a: - { - "serviceId": "7062417bf9ebd4c646bb23059003cea42180894a", - "appId": "default", - "serviceName": "SERVICECENTER", - "description": "A default service", - "version": "0.0.1", - "level": "BACK", - "schemas": [ - "firstSchema", - "secondSchema" - ], - "paths": [{ - "path": "/opt/tomcat/webapp", - "property": { - "allowCrossApp": "true" - } - }], - "status": "UP", - "properties": { - "allowCrossApp": "true" - }, - "timestamp": "1592570701", - "framework": { - "name": "UNKNOWN", - "version": "0.0.1" - }, - "alias": "SERVICECENTER", - "modTimestamp": "1592570701", - "environment": "development" - } - -# /cse-sr/ms/indexes/{domain}/{project}/{environment}/{appId}/{serviceName}/{serviceVersion} -/cse-sr/ms/indexes/default/default/development/default/SERVICECENTER/0.0.1: - "7062417bf9ebd4c646bb23059003cea42180894a" - -# /cse-sr/ms/alias/{domain}/{project}/{environment}/{appId}/{serviceName}/{serviceVersion} -/cse-sr/ms/alias/default/default/development/default/SERVICECENTER/0.0.1: - "7062417bf9ebd4c646bb23059003cea42180894a" - -# instances -# /cse-sr/inst/files/{domain}/{project}/{serviceId}/{instanceId} -/cse-sr/inst/files/default/default/7062417bf9ebd4c646bb23059003cea42180894a/b0ffb9feb22a11eaa76a08002706c83e: - { - "instanceId": "b0ffb9feb22a11eaa76a08002706c83e", - "serviceId": "7062417bf9ebd4c646bb23059003cea42180894a", - "endpoints": ["rest://127.0.0.1:30100/"], - "hostName": "tian-VirtualBox", - "status": "UP", - "healthCheck": { - "mode": "push", - "interval": 30, - "times": 3 - }, - "timestamp": "1592570701", - "modTimestamp": "1592570701", - "version": "0.0.1" - } - -# /cse-sr/inst/leases/{domain}/{project}/{serviceId}/{instanceId} -/cse-sr/inst/leases/default/default/7062417bf9ebd4c646bb23059003cea42180894a/b0ffb9feb22a11eaa76a08002706c83e: - "leaseId" - -# schemas -# /cse-sr/ms/schemas/{domain}/{project}/{serviceId}/{schemaId} -/cse-sr/ms/schemas/default/default/7062417bf9ebd4c646bb23059003cea42180894a/first-schema: - "schema" - -# /cse-sr/ms/schema-sum/{domain}/{project}/{serviceId}/{schemaId} -/cse-sr/ms/schema-sum/default/default/7062417bf9ebd4c646bb23059003cea42180894a/first-schema: - "schemaSummary" - -# dependencies -# /cse-sr/ms/dep-queue/{domain}/{project}/{serviceId}/{uuid} -/cse-sr/ms/dep-queue/default/default/7062417bf9ebd4c646bb23059003cea42180894a/0: - { - "consumer": { - "tenant": "default/default", - "project": "project", - "appId": "appId", - "serviceName": "ServiceCenter", - "version": "0.0.1", - "environment": "development", - "alias": "serviceCenter" - }, - "providers": [{ - "tenant": "default/default", - "project": "project", - "appId": "appId", - "serviceName": "ServiceCenterProvider", - "version": "0.0.2", - "environment": "development", - "alias": "serviceCenterProvider" - }], - "override": true - } - -# tags -# /cse-sr/ms/tags/{domain}/{project}/{serviceId} -/cse-sr/ms/tags/default/default/7062417bf9ebd4c646bb23059003cea42180894a: - { - "a": "1" - } - -# rules -# /cse-sr/ms/rules/{domain}/{project}/{serviceId}/{ruleId} -/cse-sr/ms/rules/default/default/7062417bf9ebd4c646bb23059003cea42180894a/Deny: - { - "ruleId": "Deny", - "attribute": "denylist", - "pattern": "Test*", - "description": "test BLACK" - } - -# /cse-sr/ms/rule-indexes/{domain}/{project}/{serviceId}/{attribute}/{pattern} -/cse-sr/ms/rule-indexes/default/default/7062417bf9ebd4c646bb23059003cea42180894a/denylist/Test: - "ruleId" - -# auth -# /cse-sr/accounts/{accountName} -/cse-sr/accounts/Alice: - { - "_id": "xxx", - "account": "account_name", - "password": "password", - "role": "admin", - "tokenExpirationTime": "1500519927", - "currentPassword": "password", - "status": "normal" - } -# record role binding to account -/cse-sr/idx-role-account/{role}/{account}: - {no value} -# domain -# /cse-sr/domains/{domain} -/cse-sr/domains/default: - -# project -# /cse-sr/domains/{domain}/{project} -/cse-sr/projects/default/default: \ No newline at end of file diff --git a/examples/mongodb_data_struct.yaml b/examples/mongodb_data_struct.yaml deleted file mode 100644 index c30a46f8..00000000 --- a/examples/mongodb_data_struct.yaml +++ /dev/null @@ -1,273 +0,0 @@ -#type Service struct { -# Domain string `json:"domain,omitempty"` -# Project string `json:"project,omitempty"` -# Tags map[string]string `json:"tags,omitempty"` -# Service *pb.MicroService `json:"service,omitempty"` -#} - -#type MicroService struct { -# ServiceId string `protobuf:"bytes,1,opt,name=serviceId" json:"serviceId,omitempty" bson:"service_id"` -# AppId string `protobuf:"bytes,2,opt,name=appId" json:"appId,omitempty" bson:"app"` -# ServiceName string `protobuf:"bytes,3,opt,name=serviceName" json:"serviceName,omitempty" bson:"service_name"` -# Version string `protobuf:"bytes,4,opt,name=version" json:"version,omitempty"` -# Description string `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"` -# Level string `protobuf:"bytes,6,opt,name=level" json:"level,omitempty"` -# Schemas []string `protobuf:"bytes,7,rep,name=schemas" json:"schemas,omitempty"` -# Paths []*ServicePath `protobuf:"bytes,10,rep,name=paths" json:"paths,omitempty"` -# Status string `protobuf:"bytes,8,opt,name=status" json:"status,omitempty"` -# Properties map[string]string `protobuf:"bytes,9,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` -# Timestamp string `protobuf:"bytes,11,opt,name=timestamp" json:"timestamp,omitempty"` -# Providers []*MicroServiceKey `protobuf:"bytes,12,rep,name=providers" json:"providers,omitempty"` -# Alias string `protobuf:"bytes,13,opt,name=alias" json:"alias,omitempty"` -# LBStrategy map[string]string `protobuf:"bytes,14,rep,name=LBStrategy" json:"LBStrategy,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value" bson:"lb_strategy"` -# ModTimestamp string `protobuf:"bytes,15,opt,name=modTimestamp" json:"modTimestamp,omitempty" bson:"mod_timestamp"` -# Environment string `protobuf:"bytes,16,opt,name=environment" json:"environment,omitempty" bson:"env"` -# RegisterBy string `protobuf:"bytes,17,opt,name=registerBy" json:"registerBy,omitempty" bson:"register_by"` -# Framework *FrameWork `protobuf:"bytes,18,opt,name=framework" json:"framework,omitempty"` -#} - -#collection: service -{ - "_id" : ObjectId("6021fb9527d99d766f82e44f"), - "domain" : "new_default", - "project" : "new_default", - "tags" : null, - "service" : { - "service_id" : "6ea4d1c36a8311eba78dfa163e176e7b", - "app" : "dep_create_dep_group", - "service_name" : "dep_create_dep_consumer", - "version" : "1.0.0", - "description" : "", - "level" : "FRONT", - "schemas" : null, - "paths" : null, - "status" : "UP", - "properties" : null, - "timestamp" : "1612839829", - "providers" : null, - "alias" : "", - "lb_strategy" : null, - "mod_timestamp" : "1612839829", - "env" : "", - "register_by" : "", - "framework" : null - } -} - -#type Instance struct { -# Domain string `json:"domain,omitempty"` -# Project string `json:"project,omitempty"` -# RefreshTime time.Time `json:"refreshTime,omitempty" bson:"refresh_time"` -# Instance *pb.MicroServiceInstance `json:"instance,omitempty"` -#} - -#type MicroServiceInstance struct { -# InstanceId string `protobuf:"bytes,1,opt,name=instanceId" json:"instanceId,omitempty" bson:"instance_id"` -# ServiceId string `protobuf:"bytes,2,opt,name=serviceId" json:"serviceId,omitempty" bson:"service_id"` -# Endpoints []string `protobuf:"bytes,3,rep,name=endpoints" json:"endpoints,omitempty"` -# HostName string `protobuf:"bytes,4,opt,name=hostName" json:"hostName,omitempty"` -# Status string `protobuf:"bytes,5,opt,name=status" json:"status,omitempty"` -# Properties map[string]string `protobuf:"bytes,6,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` -# HealthCheck *HealthCheck `protobuf:"bytes,7,opt,name=healthCheck" json:"healthCheck,omitempty" bson:"health_check"` -# Timestamp string `protobuf:"bytes,8,opt,name=timestamp" json:"timestamp,omitempty"` -# DataCenterInfo *DataCenterInfo `protobuf:"bytes,9,opt,name=dataCenterInfo" json:"dataCenterInfo,omitempty" bson:"data_center_info"` -# ModTimestamp string `protobuf:"bytes,10,opt,name=modTimestamp" json:"modTimestamp,omitempty" bson:"mod_timestamp"` -# Version string `protobuf:"bytes,11,opt,name=version" json:"version,omitempty"` -#} - -# collection: instance -{ - "_id" : ObjectId("60222c6f4fe067987f40803e"), - "domain" : "default", - "project" : "default", - "refresh_time" : ISODate("2021-02-09T06:32:15.562Z"), - "instance" : { - "instance_id" : "8cde54a46aa011ebab42fa163e176e7b", - "service_id" : "8cddc7ce6aa011ebab40fa163e176e7b", - "endpoints" : [ - "find:127.0.0.9:8080" - ], - "hostname" : "UT-HOST-MS", - "status" : "UP", - "properties" : null, - "health_check" : { - "mode" : "push", - "port" : 0, - "interval" : 30, - "times" : 3, - "url" : "" - }, - "timestamp" : "1612852335", - "data_center_info" : null, - "mod_timestamp" : "1612852335", - "version" : "1.0.0" - } -} - -#type Schema struct { -# Domain string `json:"domain,omitempty"` -# Project string `json:"project,omitempty"` -# ServiceId string `json:"serviceId,omitempty" bson:"service_id"` -# SchemaId string `json:"schemaId,omitempty" bson:"schema_id"` -# Schema string `json:"schema,omitempty"` -# SchemaSummary string `json:"schemaSummary,omitempty" bson:"schema_summary"` -#} - -# collection schema -{ - "_id" : ObjectId("6021fb9827d99d766f82e4f7"), - "domain" : "default", - "project" : "default", - "service_id" : "70302da16a8311eba7cbfa163e176e7b", - "schema_id" : "ServiceCombTestTheLimitOfSchemasServiceMS19", - "schema" : "ServiceCombTestTheLimitOfSchemasServiceMS19", - "schema_summary" : "ServiceCombTestTheLimitOfSchemasServiceMS19" -} - -#type Rule struct { -# Domain string `json:"domain,omitempty"` -# Project string `json:"project,omitempty"` -# ServiceId string `json:"serviceId,omitempty" bson:"service_id"` -# Rule *pb.ServiceRule `json:"rule,omitempty"` -#} - -#type ServiceRule struct { -# RuleId string `protobuf:"bytes,1,opt,name=ruleId" json:"ruleId,omitempty" bson:"rule_id"` -# RuleType string `protobuf:"bytes,2,opt,name=ruleType" json:"ruleType,omitempty" bson:"rule_type"` -# Attribute string `protobuf:"bytes,3,opt,name=attribute" json:"attribute,omitempty"` -# Pattern string `protobuf:"bytes,4,opt,name=pattern" json:"pattern,omitempty"` -# Description string `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"` -# Timestamp string `protobuf:"bytes,6,opt,name=timestamp" json:"timestamp,omitempty"` -# ModTimestamp string `protobuf:"bytes,7,opt,name=modTimestamp" json:"modTimestamp,omitempty" bson:"mod_timestamp"` -#} -# collection rules -{ - "_id" : ObjectId("6021fb9727d99d766f82e48a"), - "domain" : "default", - "project" : "default", - "service_id" : "7026973b6a8311eba792fa163e176e7b", - "rule" : { - "rule_id" : "702897cf6a8311eba79dfa163e176e7b", - "rule_type" : "BLACK", - "attribute" : "ServiceName", - "pattern" : "18", - "description" : "test white", - "timestamp" : "1612839831", - "mod_timestamp" : "1612839831" - } -} - -#type ConsumerDep struct { -# Domain string `json:"domain,omitempty"` -# Project string `json:"project,omitempty"` -# ConsumerId string `json:"consumerId,omitempty" bson:"consumer_id"` -# UUId string `json:"uuId,omitempty" bson:"uu_id"` -# ConsumerDep *pb.ConsumerDependency `json:"consumerDep,omitempty" bson:"consumer_dep"` -#} - -#type ConsumerDependency struct { -# Consumer *MicroServiceKey `protobuf:"bytes,1,opt,name=consumer" json:"consumer,omitempty"` -# Providers []*MicroServiceKey `protobuf:"bytes,2,rep,name=providers" json:"providers,omitempty"` -# Override bool `protobuf:"varint,3,opt,name=override" json:"override,omitempty"` -#} - -#type MicroServiceKey struct { -# Tenant string `protobuf:"bytes,1,opt,name=tenant" json:"tenant,omitempty"` -# Environment string `protobuf:"bytes,2,opt,name=environment" json:"environment,omitempty" bson:"env"` -# AppId string `protobuf:"bytes,3,opt,name=appId" json:"appId,omitempty" bson:"app"` -# ServiceName string `protobuf:"bytes,4,opt,name=serviceName" json:"serviceName,omitempty" bson:"service_name"` -# Alias string `protobuf:"bytes,5,opt,name=alias" json:"alias,omitempty"` -# Version string `protobuf:"bytes,6,opt,name=version" json:"version,omitempty"` -#} - -# collection dependencies -{ - "_id" : ObjectId("6021fb9527d99d766f82e45f"), - "domain" : "new_default", - "project" : "new_default", - "consumer_id" : "6ea4d1c36a8311eba78dfa163e176e7b", - "uu_id" : "6eaeb1dd6a8311eba790fa163e176e7b", - "consumer_dep" : { - "consumer" : { - "tenant" : "new_default/new_default", - "env" : "", - "app" : "dep_create_dep_group", - "service_name" : "dep_create_dep_consumer", - "alias" : "", - "version" : "1.0.0" - }, - "providers" : null, - "override" : false - } -} - -#type DependencyRule struct { -# Type string `json:"type,omitempty"` -# Domain string `json:"domain,omitempty"` -# Project string `json:"project,omitempty"` -# ServiceKey *pb.MicroServiceKey `json:"serviceKey,omitempty" bson:"service_key"` -# Dep *pb.MicroServiceDependency `json:"dep,omitempty"` -#} - -#type MicroServiceKey struct { -# Tenant string `protobuf:"bytes,1,opt,name=tenant" json:"tenant,omitempty"` -# Environment string `protobuf:"bytes,2,opt,name=environment" json:"environment,omitempty" bson:"env"` -# AppId string `protobuf:"bytes,3,opt,name=appId" json:"appId,omitempty" bson:"app"` -# ServiceName string `protobuf:"bytes,4,opt,name=serviceName" json:"serviceName,omitempty" bson:"service_name"` -# Alias string `protobuf:"bytes,5,opt,name=alias" json:"alias,omitempty"` -# Version string `protobuf:"bytes,6,opt,name=version" json:"version,omitempty"` -#} - -#type MicroServiceDependency struct { -# Dependency []*MicroServiceKey `json:"Dependency,omitempty"` -#} - -# collection dependencies -{ - "_id" : ObjectId("6022302751a77062a95dd0da"), - "service_key" : { - "app" : "create_dep_group", - "env" : "production", - "service_name" : "create_dep_consumer", - "tenant" : "default/default", - "version" : "1.0.0" - }, - "type" : "c", - "dep" : { - "dependency" : [ - { - "tenant" : "default/default", - "env" : "", - "app" : "service_group_provider", - "service_name" : "service_name_provider", - "alias" : "", - "version" : "latest" - } - ] - } -} - - -#type Account struct { -# ID string `json:"id,omitempty"` -# Name string `json:"name,omitempty"` -# Password string `json:"password,omitempty"` -# Roles []string `json:"roles,omitempty"` -# TokenExpirationTime string `json:"tokenExpirationTime,omitempty" bson:"token_expiration_time"` -# CurrentPassword string `json:"currentPassword,omitempty" bson:"current_password"` -# Status string `json:"status,omitempty"` -#} - -# collection account -{ - "_id" : ObjectId("60223e99184f264aee398238"), - "id" : "6038bf9f6aab11ebbcdefa163e176e7b", - "name" : "test-account1", - "password" : "$2a$14$eYyD9DiOA1vGXOyhPTjbhO6CYuGnOVt8VQ8V/sWEmExyvwOQeNI2i", - "roles" : [ - "admin" - ], - "token_expiration_time" : "2020-12-30", - "current_password" : "tnuocca-tset1", - "status" : "" -} diff --git a/istio/README.md b/istio/README.md index eb30e14e..3f2ef312 100644 --- a/istio/README.md +++ b/istio/README.md @@ -1,8 +1,8 @@ # Servicecomb-service-center-istio This tool synchronizes microservices from Servicecomb service center registry to Istio system which makes istio based service is able to discover Servicecomb service center based service. -![image](../docs/integration-istio.png) +![image](../docs/dev-guides/integration-istio.png) # Getting Started & Documentation -Documentation is available in [User Guide](../docs/user-guides/integration-istio.md) +Documentation is available in [User Guide](../docs/dev-guides/integration-istio.md) diff --git a/istio/pkg/utils/config.go b/istio/pkg/utils/config.go index 13456fab..cb92f805 100644 --- a/istio/pkg/utils/config.go +++ b/istio/pkg/utils/config.go @@ -25,11 +25,9 @@ const ( WATCHER_SVC_NAME string = "servicecenter-watcher" // Reserved service name used by ServiceCenter, will be ignored. // This is the default name of the ServiceCenter in an etcd-based registry - // (https://github.com/apache/servicecomb-service-center/blob/6f26aaa7698691d40e17c6644ac71d51b6770772/examples/etcd_data_struct.yaml#L7). SERVICECENTER_ETCD_NAME string = "SERVICECENTER" // Reserved service name used by ServiceCenter, will be ignored. // This is the default name of the ServiceCenter in a MongoDB-based registry - // (https://github.com/apache/servicecomb-service-center/blob/6f26aaa7698691d40e17c6644ac71d51b6770772/examples/mongodb_data_struct.yaml#L27). SERVICECENTER_MONGO_NAME string = "SERVICE-CENTER" // Time in seconds to wait before syncing new services from service center registry. PULL_INTERVAL time.Duration = time.Second * 5