@@ -76,6 +76,72 @@ After the project is created, there are no editing and publishing permissions as
76
76
3 . Assign publish privileges
77
77
* ![ namespace-publish-permission] ( https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/namespace-publish-permission.png )
78
78
79
+ ### 1.2.3 Configuring permissions for different dimensions
80
+
81
+ Regarding Apollo's configuration permissions, the permissions were bound to the namespace during the initial design. Because Apollo's permission management itself is relatively flexible, it can be expanded on this basis.
82
+ Design of main entity classes based on Apollo [ E-R Diagram] ( /docs/en/design/apollo-design.md?id=_14-e-r-diagram ) ,
83
+ We can think of Namespace as the smallest unit of permissions, and App as the largest unit of permissions.
84
+ In the middle are Env and Cluster, so we can manage permissions in different dimensions.
85
+
86
+ | App | Env | Cluster | Namespace | Model | Impl |
87
+ | --- | --- | --- | --- | --- | ------|
88
+ | ☑️ | | | | App → * | no |
89
+ | ☑️ | | | ☑️ | App → Namespace | yes |
90
+ | ☑️ | ☑️ | | | App + Env → * | no |
91
+ | ☑️ | ☑️ | | ☑️ | App + Env → Namespace | yes |
92
+ | ☑️ | ☑️ | ☑️ | | App + Env + Cluster → * | yes |
93
+ | ☑️ | ☑️ | ☑️ | ☑️ | App + Env + Cluster → Namespace | no |
94
+
95
+ Explanation of different permission models:
96
+
97
+ | Model | Target | PermissionType (e.g. Modify) | TargetId |
98
+ | --- | --- | --- | --- |
99
+ | App → * | All namespaces of App | | |
100
+ | App → Namespace | All namespaces with specified names under App | ModifyNamespace | App+Namespace |
101
+ | App + Env → * | All namespaces under App's env | | |
102
+ | App + Env → Namespace | All namespaces with specified names under App's env | ModifyNamespace | App+Namespace+Env |
103
+ | App + Env + Cluster → * | All namespaces of the cluster in App's env | ModifyNamespaceInCluster | App+Env+ClusterName |
104
+ | App + Env + Cluster → Namespace | The namespace with the specified name under the cluster in App's env | | |
105
+
106
+ #### 1.2.3.1 All namespaces of App
107
+
108
+ 1 . Click the authorization button of the application
109
+ * ![ ns-permission-app-allns-entry] ( https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/ns-permission-app-allns-entry.png )
110
+
111
+ 2 . Select "All environments"
112
+ * ![ ns-permission-app-allns-select] ( https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/ns-permission-app-allns-select.png )
113
+
114
+ 3 . Assign the modify permission
115
+ * ![ namespace-permission-edit] ( https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/namespace-permission-edit.png )
116
+
117
+ 4 . Assign publish privileges
118
+ * ![ namespace-publish-permission] ( https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/namespace-publish-permission.png )
119
+
120
+ #### 1.2.3.2 All namespaces of App's env
121
+
122
+ 1 . Click the authorization button of the application
123
+ * ![ ns-permission-app-env-allns-entry] ( https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/ns-permission-app-env-allns-entry.png )
124
+
125
+ 2 . Select the env
126
+ * ![ ns-permission-app-env-ns-select] ( https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/ns-permission-app-env-ns-select.png )
127
+
128
+ 3 . Assign the modify permission
129
+ * ![ namespace-permission-edit] ( https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/namespace-permission-edit.png )
130
+
131
+ 4 . Assign publish privileges
132
+ * ![ namespace-publish-permission] ( https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/namespace-publish-permission.png )
133
+
134
+ #### 1.2.3.3 All namespaces of the cluster in App's env
135
+
136
+ 1 . Click "Manage Cluster" to enter the management cluster page
137
+ * ![ manage-cluster-entry] ( https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/manage-cluster-entry.png )
138
+
139
+ 2 . Click the authorization button of the Cluster you want to manage
140
+ * ![ ns-permission-app-env-cluster-entry] ( https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/ns-permission-app-env-cluster-entry.png )
141
+
142
+ 3 . Edit permissions
143
+ * ![ ns-permission-app-env-cluster-edit] ( https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/ns-permission-app-env-cluster-edit.png )
144
+
79
145
## 1.3 Adding configuration items
80
146
81
147
To edit the configuration, you need to have the edit permission of this Namespace. If you find that there is no Add Configuration button, you can find the project administrator to authorize it.
0 commit comments