outposts: add *ServiceConnection API
This commit is contained in:
		| @ -19,7 +19,7 @@ from passbook.core.api.tokens import TokenViewSet | |||||||
| from passbook.core.api.users import UserViewSet | from passbook.core.api.users import UserViewSet | ||||||
| from passbook.crypto.api import CertificateKeyPairViewSet | from passbook.crypto.api import CertificateKeyPairViewSet | ||||||
| from passbook.flows.api import FlowStageBindingViewSet, FlowViewSet, StageViewSet | from passbook.flows.api import FlowStageBindingViewSet, FlowViewSet, StageViewSet | ||||||
| from passbook.outposts.api import OutpostViewSet | from passbook.outposts.api import OutpostViewSet, DockerServiceConnectionViewSet, KubernetesServiceConnectionViewSet | ||||||
| from passbook.policies.api import PolicyBindingViewSet, PolicyViewSet | from passbook.policies.api import PolicyBindingViewSet, PolicyViewSet | ||||||
| from passbook.policies.dummy.api import DummyPolicyViewSet | from passbook.policies.dummy.api import DummyPolicyViewSet | ||||||
| from passbook.policies.expiry.api import PasswordExpiryPolicyViewSet | from passbook.policies.expiry.api import PasswordExpiryPolicyViewSet | ||||||
| @ -29,7 +29,7 @@ from passbook.policies.hibp.api import HaveIBeenPwendPolicyViewSet | |||||||
| from passbook.policies.password.api import PasswordPolicyViewSet | from passbook.policies.password.api import PasswordPolicyViewSet | ||||||
| from passbook.policies.reputation.api import ReputationPolicyViewSet | from passbook.policies.reputation.api import ReputationPolicyViewSet | ||||||
| from passbook.providers.oauth2.api import OAuth2ProviderViewSet, ScopeMappingViewSet | from passbook.providers.oauth2.api import OAuth2ProviderViewSet, ScopeMappingViewSet | ||||||
| from passbook.providers.proxy.api import OutpostConfigViewSet, ProxyProviderViewSet | from passbook.providers.proxy.api import ProxyOutpostConfigViewSet, ProxyProviderViewSet | ||||||
| from passbook.providers.saml.api import SAMLPropertyMappingViewSet, SAMLProviderViewSet | from passbook.providers.saml.api import SAMLPropertyMappingViewSet, SAMLProviderViewSet | ||||||
| from passbook.sources.ldap.api import LDAPPropertyMappingViewSet, LDAPSourceViewSet | from passbook.sources.ldap.api import LDAPPropertyMappingViewSet, LDAPSourceViewSet | ||||||
| from passbook.sources.oauth.api import OAuthSourceViewSet | from passbook.sources.oauth.api import OAuthSourceViewSet | ||||||
| @ -66,7 +66,9 @@ router.register("core/users", UserViewSet) | |||||||
| router.register("core/tokens", TokenViewSet) | router.register("core/tokens", TokenViewSet) | ||||||
|  |  | ||||||
| router.register("outposts/outposts", OutpostViewSet) | router.register("outposts/outposts", OutpostViewSet) | ||||||
| router.register("outposts/proxy", OutpostConfigViewSet) | router.register("outposts/service_connections/docker", DockerServiceConnectionViewSet) | ||||||
|  | router.register("outposts/service_connections/kubernetes", KubernetesServiceConnectionViewSet) | ||||||
|  | router.register("outposts/proxy", ProxyOutpostConfigViewSet) | ||||||
|  |  | ||||||
| router.register("flows/instances", FlowViewSet) | router.register("flows/instances", FlowViewSet) | ||||||
| router.register("flows/bindings", FlowStageBindingViewSet) | router.register("flows/bindings", FlowStageBindingViewSet) | ||||||
|  | |||||||
| @ -2,7 +2,11 @@ | |||||||
| from rest_framework.serializers import JSONField, ModelSerializer | from rest_framework.serializers import JSONField, ModelSerializer | ||||||
| from rest_framework.viewsets import ModelViewSet | from rest_framework.viewsets import ModelViewSet | ||||||
|  |  | ||||||
| from passbook.outposts.models import Outpost | from passbook.outposts.models import ( | ||||||
|  |     DockerServiceConnection, | ||||||
|  |     KubernetesServiceConnection, | ||||||
|  |     Outpost, | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| class OutpostSerializer(ModelSerializer): | class OutpostSerializer(ModelSerializer): | ||||||
| @ -21,3 +25,35 @@ class OutpostViewSet(ModelViewSet): | |||||||
|  |  | ||||||
|     queryset = Outpost.objects.all() |     queryset = Outpost.objects.all() | ||||||
|     serializer_class = OutpostSerializer |     serializer_class = OutpostSerializer | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class DockerServiceConnectionSerializer(ModelSerializer): | ||||||
|  |     """DockerServiceConnection Serializer""" | ||||||
|  |  | ||||||
|  |     class Meta: | ||||||
|  |  | ||||||
|  |         model = DockerServiceConnection | ||||||
|  |         fields = ["pk", "name", "local", "url", "tls"] | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class DockerServiceConnectionViewSet(ModelViewSet): | ||||||
|  |     """DockerServiceConnection Viewset""" | ||||||
|  |  | ||||||
|  |     queryset = DockerServiceConnection.objects.all() | ||||||
|  |     serializer_class = DockerServiceConnectionSerializer | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class KubernetesServiceConnectionSerializer(ModelSerializer): | ||||||
|  |     """KubernetesServiceConnection Serializer""" | ||||||
|  |  | ||||||
|  |     class Meta: | ||||||
|  |  | ||||||
|  |         model = KubernetesServiceConnection | ||||||
|  |         fields = ["pk", "name", "local", "config"] | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class KubernetesServiceConnectionViewSet(ModelViewSet): | ||||||
|  |     """KubernetesServiceConnection Viewset""" | ||||||
|  |  | ||||||
|  |     queryset = KubernetesServiceConnection.objects.all() | ||||||
|  |     serializer_class = KubernetesServiceConnectionSerializer | ||||||
|  | |||||||
| @ -112,7 +112,7 @@ class ProxyOutpostConfigSerializer(ModelSerializer): | |||||||
|         return ProviderInfoView(request=self.context["request"]._request).get_info(obj) |         return ProviderInfoView(request=self.context["request"]._request).get_info(obj) | ||||||
|  |  | ||||||
|  |  | ||||||
| class OutpostConfigViewSet(ModelViewSet): | class ProxyOutpostConfigViewSet(ModelViewSet): | ||||||
|     """ProxyProvider Viewset""" |     """ProxyProvider Viewset""" | ||||||
|  |  | ||||||
|     queryset = ProxyProvider.objects.filter(application__isnull=False) |     queryset = ProxyProvider.objects.filter(application__isnull=False) | ||||||
|  | |||||||
							
								
								
									
										314
									
								
								swagger.yaml
									
									
									
									
									
								
							
							
						
						
									
										314
									
								
								swagger.yaml
									
									
									
									
									
								
							| @ -1353,6 +1353,260 @@ paths: | |||||||
|         description: A unique integer value identifying this Proxy Provider. |         description: A unique integer value identifying this Proxy Provider. | ||||||
|         required: true |         required: true | ||||||
|         type: integer |         type: integer | ||||||
|  |   /outposts/service_connections/docker/: | ||||||
|  |     get: | ||||||
|  |       operationId: outposts_service_connections_docker_list | ||||||
|  |       description: DockerServiceConnection Viewset | ||||||
|  |       parameters: | ||||||
|  |         - name: ordering | ||||||
|  |           in: query | ||||||
|  |           description: Which field to use when ordering the results. | ||||||
|  |           required: false | ||||||
|  |           type: string | ||||||
|  |         - name: search | ||||||
|  |           in: query | ||||||
|  |           description: A search term. | ||||||
|  |           required: false | ||||||
|  |           type: string | ||||||
|  |         - name: limit | ||||||
|  |           in: query | ||||||
|  |           description: Number of results to return per page. | ||||||
|  |           required: false | ||||||
|  |           type: integer | ||||||
|  |         - name: offset | ||||||
|  |           in: query | ||||||
|  |           description: The initial index from which to return the results. | ||||||
|  |           required: false | ||||||
|  |           type: integer | ||||||
|  |       responses: | ||||||
|  |         '200': | ||||||
|  |           description: '' | ||||||
|  |           schema: | ||||||
|  |             required: | ||||||
|  |               - count | ||||||
|  |               - results | ||||||
|  |             type: object | ||||||
|  |             properties: | ||||||
|  |               count: | ||||||
|  |                 type: integer | ||||||
|  |               next: | ||||||
|  |                 type: string | ||||||
|  |                 format: uri | ||||||
|  |                 x-nullable: true | ||||||
|  |               previous: | ||||||
|  |                 type: string | ||||||
|  |                 format: uri | ||||||
|  |                 x-nullable: true | ||||||
|  |               results: | ||||||
|  |                 type: array | ||||||
|  |                 items: | ||||||
|  |                   $ref: '#/definitions/DockerServiceConnection' | ||||||
|  |       tags: | ||||||
|  |         - outposts | ||||||
|  |     post: | ||||||
|  |       operationId: outposts_service_connections_docker_create | ||||||
|  |       description: DockerServiceConnection Viewset | ||||||
|  |       parameters: | ||||||
|  |         - name: data | ||||||
|  |           in: body | ||||||
|  |           required: true | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/DockerServiceConnection' | ||||||
|  |       responses: | ||||||
|  |         '201': | ||||||
|  |           description: '' | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/DockerServiceConnection' | ||||||
|  |       tags: | ||||||
|  |         - outposts | ||||||
|  |     parameters: [] | ||||||
|  |   /outposts/service_connections/docker/{uuid}/: | ||||||
|  |     get: | ||||||
|  |       operationId: outposts_service_connections_docker_read | ||||||
|  |       description: DockerServiceConnection Viewset | ||||||
|  |       parameters: [] | ||||||
|  |       responses: | ||||||
|  |         '200': | ||||||
|  |           description: '' | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/DockerServiceConnection' | ||||||
|  |       tags: | ||||||
|  |         - outposts | ||||||
|  |     put: | ||||||
|  |       operationId: outposts_service_connections_docker_update | ||||||
|  |       description: DockerServiceConnection Viewset | ||||||
|  |       parameters: | ||||||
|  |         - name: data | ||||||
|  |           in: body | ||||||
|  |           required: true | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/DockerServiceConnection' | ||||||
|  |       responses: | ||||||
|  |         '200': | ||||||
|  |           description: '' | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/DockerServiceConnection' | ||||||
|  |       tags: | ||||||
|  |         - outposts | ||||||
|  |     patch: | ||||||
|  |       operationId: outposts_service_connections_docker_partial_update | ||||||
|  |       description: DockerServiceConnection Viewset | ||||||
|  |       parameters: | ||||||
|  |         - name: data | ||||||
|  |           in: body | ||||||
|  |           required: true | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/DockerServiceConnection' | ||||||
|  |       responses: | ||||||
|  |         '200': | ||||||
|  |           description: '' | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/DockerServiceConnection' | ||||||
|  |       tags: | ||||||
|  |         - outposts | ||||||
|  |     delete: | ||||||
|  |       operationId: outposts_service_connections_docker_delete | ||||||
|  |       description: DockerServiceConnection Viewset | ||||||
|  |       parameters: [] | ||||||
|  |       responses: | ||||||
|  |         '204': | ||||||
|  |           description: '' | ||||||
|  |       tags: | ||||||
|  |         - outposts | ||||||
|  |     parameters: | ||||||
|  |       - name: uuid | ||||||
|  |         in: path | ||||||
|  |         description: A UUID string identifying this docker service connection. | ||||||
|  |         required: true | ||||||
|  |         type: string | ||||||
|  |         format: uuid | ||||||
|  |   /outposts/service_connections/kubernetes/: | ||||||
|  |     get: | ||||||
|  |       operationId: outposts_service_connections_kubernetes_list | ||||||
|  |       description: KubernetesServiceConnection Viewset | ||||||
|  |       parameters: | ||||||
|  |         - name: ordering | ||||||
|  |           in: query | ||||||
|  |           description: Which field to use when ordering the results. | ||||||
|  |           required: false | ||||||
|  |           type: string | ||||||
|  |         - name: search | ||||||
|  |           in: query | ||||||
|  |           description: A search term. | ||||||
|  |           required: false | ||||||
|  |           type: string | ||||||
|  |         - name: limit | ||||||
|  |           in: query | ||||||
|  |           description: Number of results to return per page. | ||||||
|  |           required: false | ||||||
|  |           type: integer | ||||||
|  |         - name: offset | ||||||
|  |           in: query | ||||||
|  |           description: The initial index from which to return the results. | ||||||
|  |           required: false | ||||||
|  |           type: integer | ||||||
|  |       responses: | ||||||
|  |         '200': | ||||||
|  |           description: '' | ||||||
|  |           schema: | ||||||
|  |             required: | ||||||
|  |               - count | ||||||
|  |               - results | ||||||
|  |             type: object | ||||||
|  |             properties: | ||||||
|  |               count: | ||||||
|  |                 type: integer | ||||||
|  |               next: | ||||||
|  |                 type: string | ||||||
|  |                 format: uri | ||||||
|  |                 x-nullable: true | ||||||
|  |               previous: | ||||||
|  |                 type: string | ||||||
|  |                 format: uri | ||||||
|  |                 x-nullable: true | ||||||
|  |               results: | ||||||
|  |                 type: array | ||||||
|  |                 items: | ||||||
|  |                   $ref: '#/definitions/KubernetesServiceConnection' | ||||||
|  |       tags: | ||||||
|  |         - outposts | ||||||
|  |     post: | ||||||
|  |       operationId: outposts_service_connections_kubernetes_create | ||||||
|  |       description: KubernetesServiceConnection Viewset | ||||||
|  |       parameters: | ||||||
|  |         - name: data | ||||||
|  |           in: body | ||||||
|  |           required: true | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/KubernetesServiceConnection' | ||||||
|  |       responses: | ||||||
|  |         '201': | ||||||
|  |           description: '' | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/KubernetesServiceConnection' | ||||||
|  |       tags: | ||||||
|  |         - outposts | ||||||
|  |     parameters: [] | ||||||
|  |   /outposts/service_connections/kubernetes/{uuid}/: | ||||||
|  |     get: | ||||||
|  |       operationId: outposts_service_connections_kubernetes_read | ||||||
|  |       description: KubernetesServiceConnection Viewset | ||||||
|  |       parameters: [] | ||||||
|  |       responses: | ||||||
|  |         '200': | ||||||
|  |           description: '' | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/KubernetesServiceConnection' | ||||||
|  |       tags: | ||||||
|  |         - outposts | ||||||
|  |     put: | ||||||
|  |       operationId: outposts_service_connections_kubernetes_update | ||||||
|  |       description: KubernetesServiceConnection Viewset | ||||||
|  |       parameters: | ||||||
|  |         - name: data | ||||||
|  |           in: body | ||||||
|  |           required: true | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/KubernetesServiceConnection' | ||||||
|  |       responses: | ||||||
|  |         '200': | ||||||
|  |           description: '' | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/KubernetesServiceConnection' | ||||||
|  |       tags: | ||||||
|  |         - outposts | ||||||
|  |     patch: | ||||||
|  |       operationId: outposts_service_connections_kubernetes_partial_update | ||||||
|  |       description: KubernetesServiceConnection Viewset | ||||||
|  |       parameters: | ||||||
|  |         - name: data | ||||||
|  |           in: body | ||||||
|  |           required: true | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/KubernetesServiceConnection' | ||||||
|  |       responses: | ||||||
|  |         '200': | ||||||
|  |           description: '' | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/KubernetesServiceConnection' | ||||||
|  |       tags: | ||||||
|  |         - outposts | ||||||
|  |     delete: | ||||||
|  |       operationId: outposts_service_connections_kubernetes_delete | ||||||
|  |       description: KubernetesServiceConnection Viewset | ||||||
|  |       parameters: [] | ||||||
|  |       responses: | ||||||
|  |         '204': | ||||||
|  |           description: '' | ||||||
|  |       tags: | ||||||
|  |         - outposts | ||||||
|  |     parameters: | ||||||
|  |       - name: uuid | ||||||
|  |         in: path | ||||||
|  |         description: A UUID string identifying this kubernetes service connection. | ||||||
|  |         required: true | ||||||
|  |         type: string | ||||||
|  |         format: uuid | ||||||
|   /policies/all/: |   /policies/all/: | ||||||
|     get: |     get: | ||||||
|       operationId: policies_all_list |       operationId: policies_all_list | ||||||
| @ -6454,6 +6708,13 @@ definitions: | |||||||
|         items: |         items: | ||||||
|           type: integer |           type: integer | ||||||
|         uniqueItems: true |         uniqueItems: true | ||||||
|  |       service_connection: | ||||||
|  |         title: Service connection | ||||||
|  |         description: Select Service-Connection passbook should use to manage this | ||||||
|  |           outpost. Leave empty if passbook should not handle the deployment. | ||||||
|  |         type: string | ||||||
|  |         format: uuid | ||||||
|  |         x-nullable: true | ||||||
|       _config: |       _config: | ||||||
|         title: config |         title: config | ||||||
|         type: object |         type: object | ||||||
| @ -6594,6 +6855,59 @@ definitions: | |||||||
|         description: User/Group Attribute used for the user part of the HTTP-Basic |         description: User/Group Attribute used for the user part of the HTTP-Basic | ||||||
|           Header. If not set, the user's Email address is used. |           Header. If not set, the user's Email address is used. | ||||||
|         type: string |         type: string | ||||||
|  |   DockerServiceConnection: | ||||||
|  |     description: DockerServiceConnection Serializer | ||||||
|  |     required: | ||||||
|  |       - name | ||||||
|  |       - url | ||||||
|  |       - tls | ||||||
|  |     type: object | ||||||
|  |     properties: | ||||||
|  |       pk: | ||||||
|  |         title: Uuid | ||||||
|  |         type: string | ||||||
|  |         format: uuid | ||||||
|  |         readOnly: true | ||||||
|  |       name: | ||||||
|  |         title: Name | ||||||
|  |         type: string | ||||||
|  |         minLength: 1 | ||||||
|  |       local: | ||||||
|  |         title: Local | ||||||
|  |         description: If enabled, use the local connection. Required Docker socket/Kubernetes | ||||||
|  |           Integration | ||||||
|  |         type: boolean | ||||||
|  |       url: | ||||||
|  |         title: Url | ||||||
|  |         type: string | ||||||
|  |         minLength: 1 | ||||||
|  |       tls: | ||||||
|  |         title: Tls | ||||||
|  |         type: boolean | ||||||
|  |   KubernetesServiceConnection: | ||||||
|  |     description: KubernetesServiceConnection Serializer | ||||||
|  |     required: | ||||||
|  |       - name | ||||||
|  |       - config | ||||||
|  |     type: object | ||||||
|  |     properties: | ||||||
|  |       pk: | ||||||
|  |         title: Uuid | ||||||
|  |         type: string | ||||||
|  |         format: uuid | ||||||
|  |         readOnly: true | ||||||
|  |       name: | ||||||
|  |         title: Name | ||||||
|  |         type: string | ||||||
|  |         minLength: 1 | ||||||
|  |       local: | ||||||
|  |         title: Local | ||||||
|  |         description: If enabled, use the local connection. Required Docker socket/Kubernetes | ||||||
|  |           Integration | ||||||
|  |         type: boolean | ||||||
|  |       config: | ||||||
|  |         title: Config | ||||||
|  |         type: object | ||||||
|   Policy: |   Policy: | ||||||
|     description: Policy Serializer |     description: Policy Serializer | ||||||
|     type: object |     type: object | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Jens Langhammer
					Jens Langhammer