From bbbd1ad4a114809b3205355439824f9cdd1352ca Mon Sep 17 00:00:00 2001 From: Baz Date: Tue, 2 Aug 2022 16:47:03 +0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Source=20Okta:=20fix=20for=20fai?= =?UTF-8?q?led=20stream=20on=20`Json=20Validation`=20NPE=20(#15179)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/seed/source_definitions.yaml | 2 +- .../src/main/resources/seed/source_specs.yaml | 2 +- .../connectors/source-okta/Dockerfile | 2 +- .../connectors/source-okta/README.md | 3 +- .../source_okta/schemas/custom_roles.json | 36 ++- .../source_okta/schemas/group_members.json | 213 +++++++++++++++- .../schemas/group_role_assignments.json | 80 +++++- .../source_okta/schemas/groups.json | 15 +- .../source-okta/source_okta/schemas/logs.json | 65 +---- .../schemas/shared/shared-link.json | 10 - .../schemas/shared/shared-role.json | 85 ------- .../schemas/shared/shared-user.json | 228 ------------------ .../schemas/user_role_assignments.json | 80 +++++- .../source_okta/schemas/users.json | 215 ++++++++++++++++- docs/integrations/sources/okta.md | 1 + 15 files changed, 630 insertions(+), 407 deletions(-) delete mode 100644 airbyte-integrations/connectors/source-okta/source_okta/schemas/shared/shared-link.json delete mode 100644 airbyte-integrations/connectors/source-okta/source_okta/schemas/shared/shared-role.json delete mode 100644 airbyte-integrations/connectors/source-okta/source_okta/schemas/shared/shared-user.json diff --git a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml index 96052e922f56..0a8e8bdac57a 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -628,7 +628,7 @@ - name: Okta sourceDefinitionId: 1d4fdb25-64fc-4569-92da-fcdca79a8372 dockerRepository: airbyte/source-okta - dockerImageTag: 0.1.9 + dockerImageTag: 0.1.10 documentationUrl: https://docs.airbyte.io/integrations/sources/okta icon: okta.svg sourceType: api diff --git a/airbyte-config/init/src/main/resources/seed/source_specs.yaml b/airbyte-config/init/src/main/resources/seed/source_specs.yaml index 5a1775b45e82..5ac83f89b70c 100644 --- a/airbyte-config/init/src/main/resources/seed/source_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_specs.yaml @@ -6027,7 +6027,7 @@ - - "client_secret" oauthFlowOutputParameters: - - "access_token" -- dockerImage: "airbyte/source-okta:0.1.9" +- dockerImage: "airbyte/source-okta:0.1.10" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/okta" connectionSpecification: diff --git a/airbyte-integrations/connectors/source-okta/Dockerfile b/airbyte-integrations/connectors/source-okta/Dockerfile index a50a33cb15aa..ba3c88dcb951 100644 --- a/airbyte-integrations/connectors/source-okta/Dockerfile +++ b/airbyte-integrations/connectors/source-okta/Dockerfile @@ -12,5 +12,5 @@ RUN pip install . ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py" ENTRYPOINT ["python", "/airbyte/integration_code/main.py"] -LABEL io.airbyte.version=0.1.9 +LABEL io.airbyte.version=0.1.10 LABEL io.airbyte.name=airbyte/source-okta diff --git a/airbyte-integrations/connectors/source-okta/README.md b/airbyte-integrations/connectors/source-okta/README.md index b48d2c1119e5..7c5a29094da3 100644 --- a/airbyte-integrations/connectors/source-okta/README.md +++ b/airbyte-integrations/connectors/source-okta/README.md @@ -99,7 +99,8 @@ Customize `acceptance-test-config.yml` file to configure tests. See [Source Acce If your connector requires to create or destroy resources for use during acceptance tests create fixtures for it and place them inside integration_tests/acceptance.py. To run your integration tests with acceptance tests, from the connector root, run ``` -python -m pytest integration_tests -p integration_tests.acceptance +docker build . --no-cache -t airbyte/source-okta:dev \ +&& python -m pytest -p source_acceptance_test.plugin ``` To run your integration tests with docker diff --git a/airbyte-integrations/connectors/source-okta/source_okta/schemas/custom_roles.json b/airbyte-integrations/connectors/source-okta/source_okta/schemas/custom_roles.json index 736457284c32..ce7e87bf181e 100644 --- a/airbyte-integrations/connectors/source-okta/source_okta/schemas/custom_roles.json +++ b/airbyte-integrations/connectors/source-okta/source_okta/schemas/custom_roles.json @@ -1,35 +1,49 @@ { + "type": ["null", "object"], + "additionalProperties": true, "properties": { "id": { - "type": "string" + "type": ["null", "string"] }, "label": { - "type": "string" + "type": ["null", "string"] }, "created": { "format": "date-time", - "type": "string" + "type": ["null", "string"] }, "lastUpdated": { "format": "date-time", - "type": "string" + "type": ["null", "string"] }, "_links": { + "type": ["null", "object"], "properties": { "assignee": { + "type": ["null", "object"], + "additionalProperties": true, "properties": { "self": { - "$ref": "shared-link.json" + "type": ["null", "object"], + "additionalProperties": true, + "properties": { + "href": { + "type": ["null", "string"] + } + } }, "permissions": { - "$ref": "shared-link.json", - "description": "Gets a list of Permissions that is granted through this assignment" + "type": ["null", "object"], + "additionalProperties": true, + "properties": { + "href": { + "type": ["null", "string"] + } + } } } } - }, - "type": ["object", "null"] + } } - }, - "type": "object" + } } diff --git a/airbyte-integrations/connectors/source-okta/source_okta/schemas/group_members.json b/airbyte-integrations/connectors/source-okta/source_okta/schemas/group_members.json index f1dd1977e55a..e3e9d234fc1f 100644 --- a/airbyte-integrations/connectors/source-okta/source_okta/schemas/group_members.json +++ b/airbyte-integrations/connectors/source-okta/source_okta/schemas/group_members.json @@ -1,3 +1,212 @@ { - "$ref": "shared-user.json" -} + "type": ["null", "object"], + "additionalProperties": true, + "properties": { + "_links": { + "type": ["null", "object"] + }, + "activated": { + "format": "date-time", + "type": ["null", "string"] + }, + "created": { + "format": "date-time", + "type": ["null", "string"] + }, + "credentials": { + "type": ["null", "object"], + "additionalProperties": true, + "properties": { + "password": { + "type": ["null", "object"], + "additionalProperties": true, + "properties": { + "hash": { + "type": ["null", "object"], + "properties": { + "algorithm": { + "type": ["null", "string"] + }, + "salt": { + "type": ["null", "string"] + }, + "saltOrder": { + "type": ["null", "string"] + }, + "value": { + "type": ["null", "string"] + }, + "workFactor": { + "type": ["null", "integer"] + } + } + }, + "hook": { + "type": ["null", "object"], + "properties": { + "type": { + "type": ["null", "string"] + } + } + }, + "value": { + "type": ["null", "string"] + } + } + }, + "provider": { + "properties": { + "name": { + "type": ["null", "string"] + }, + "type": { + "type": ["null", "string"] + } + }, + "type": ["null", "object"] + }, + "recovery_question": { + "properties": { + "answer": { + "type": ["null", "string"] + }, + "question": { + "type": ["null", "string"] + } + }, + "type": ["null", "object"] + } + } + }, + "id": { + "type": ["null", "string"] + }, + "lastLogin": { + "format": "date-time", + "type": ["null", "string"] + }, + "lastUpdated": { + "format": "date-time", + "type": ["null", "string"] + }, + "passwordChanged": { + "format": "date-time", + "type": ["null", "string"] + }, + "profile": { + "additionalProperties": true, + "properties": { + "city": { + "type": ["null", "string"] + }, + "costCenter": { + "type": ["null", "string"] + }, + "countryCode": { + "type": ["null", "string"] + }, + "department": { + "type": ["null", "string"] + }, + "displayName": { + "type": ["null", "string"] + }, + "division": { + "type": ["null", "string"] + }, + "email": { + "type": ["null", "string"] + }, + "employeeNumber": { + "type": ["null", "string"] + }, + "firstName": { + "type": ["null", "string"] + }, + "honorificPrefix": { + "type": ["null", "string"] + }, + "honorificSuffix": { + "type": ["null", "string"] + }, + "lastName": { + "type": ["null", "string"] + }, + "locale": { + "type": ["null", "string"] + }, + "login": { + "type": ["null", "string"] + }, + "manager": { + "type": ["null", "string"] + }, + "managerId": { + "type": ["null", "string"] + }, + "middleName": { + "type": ["null", "string"] + }, + "mobilePhone": { + "type": ["null", "string"] + }, + "nickName": { + "type": ["null", "string"] + }, + "organization": { + "type": ["null", "string"] + }, + "postalAddress": { + "type": ["null", "string"] + }, + "preferredLanguage": { + "type": ["null", "string"] + }, + "primaryPhone": { + "type": ["null", "string"] + }, + "profileUrl": { + "type": ["null", "string"] + }, + "secondEmail": { + "type": ["null", "string"] + }, + "state": { + "type": ["null", "string"] + }, + "streetAddress": { + "type": ["null", "string"] + }, + "timezone": { + "type": ["null", "string"] + }, + "title": { + "type": ["null", "string"] + }, + "userType": { + "type": ["null", "string"] + }, + "zipCode": { + "type": ["null", "string"] + } + }, + "type": ["null", "object"] + }, + "status": { + "type": ["null", "string"] + }, + "statusChanged": { + "format": "date-time", + "type": ["null", "string"] + }, + "type": { + "additionalProperties": true, + "properties": { + "id": { + "type": ["null", "string"] + } + }, + "type": ["null", "object"] + } + } +} \ No newline at end of file diff --git a/airbyte-integrations/connectors/source-okta/source_okta/schemas/group_role_assignments.json b/airbyte-integrations/connectors/source-okta/source_okta/schemas/group_role_assignments.json index 49a6dfb4c85a..c55529918cf5 100644 --- a/airbyte-integrations/connectors/source-okta/source_okta/schemas/group_role_assignments.json +++ b/airbyte-integrations/connectors/source-okta/source_okta/schemas/group_role_assignments.json @@ -1,3 +1,81 @@ { - "$ref": "shared-role.json" + "type": ["null", "object"], + "properties": { + "id": { + "type": ["null", "string"] + }, + "label": { + "type": ["null", "string"] + }, + "type": { + "type": ["null", "string"] + }, + "status": { + "type": ["null", "string"] + }, + "created": { + "format": "date-time", + "type": ["null", "string"] + }, + "lastUpdated": { + "format": "date-time", + "type": ["null", "string"] + }, + "assignmentType": { + "type": ["null", "string"] + }, + "resource-set": { + "type": ["string", "null"] + }, + "_links": { + "type": ["object", "null"], + "properties": { + "assignee": { + "type": ["object", "null"], + "properties": { + "assignee": { + "type": ["object", "null"], + "properties": { + "herf": { + "type": ["null", "string"] + } + } + }, + "role": { + "type": ["object", "null"], + "properties": { + "herf": { + "type": ["null", "string"] + } + } + }, + "resource-set": { + "type": ["object", "null"], + "properties": { + "herf": { + "type": ["null", "string"] + } + } + }, + "permissions": { + "type": ["object", "null"], + "properties": { + "herf": { + "type": ["null", "string"] + } + } + }, + "member": { + "type": ["object", "null"], + "properties": { + "herf": { + "type": ["null", "string"] + } + } + } + } + } + } + } + } } diff --git a/airbyte-integrations/connectors/source-okta/source_okta/schemas/groups.json b/airbyte-integrations/connectors/source-okta/source_okta/schemas/groups.json index 7ddf3d37fcd4..f9b7633e3094 100644 --- a/airbyte-integrations/connectors/source-okta/source_okta/schemas/groups.json +++ b/airbyte-integrations/connectors/source-okta/source_okta/schemas/groups.json @@ -5,18 +5,18 @@ }, "created": { "format": "date-time", - "type": "string" + "type": ["string", "null"] }, "id": { - "type": "string" + "type": ["string", "null"] }, "lastMembershipUpdated": { "format": "date-time", - "type": "string" + "type": ["string", "null"] }, "lastUpdated": { "format": "date-time", - "type": "string" + "type": ["string", "null"] }, "objectClass": { "items": { @@ -33,12 +33,11 @@ "type": ["string", "null"] } }, - "type": "object" + "type": ["object", "null"] }, "type": { - "enum": ["OKTA_GROUP", "APP_GROUP", "BUILT_IN"], - "type": "string" + "type": ["string", "null"] } }, - "type": "object" + "type": ["object", "null"] } diff --git a/airbyte-integrations/connectors/source-okta/source_okta/schemas/logs.json b/airbyte-integrations/connectors/source-okta/source_okta/schemas/logs.json index 069d60a6a765..ea0b25e816ab 100644 --- a/airbyte-integrations/connectors/source-okta/source_okta/schemas/logs.json +++ b/airbyte-integrations/connectors/source-okta/source_okta/schemas/logs.json @@ -23,48 +23,15 @@ "authenticationContext": { "properties": { "authenticationProvider": { - "enum": [ - "OKTA_AUTHENTICATION_PROVIDER", - "ACTIVE_DIRECTORY", - "LDAP", - "FEDERATION", - "SOCIAL", - "FACTOR_PROVIDER", - null - ], "type": ["string", "null"] }, "authenticationStep": { "type": ["integer"] }, "credentialProvider": { - "enum": [ - "OKTA_CREDENTIAL_PROVIDER", - "RSA", - "SYMANTEC", - "GOOGLE", - "DUO", - "YUBIKEY", - null - ], "type": ["string", "null"] }, "credentialType": { - "enum": [ - "OTP", - "SMS", - "PASSWORD", - "ASSERTION", - "IWA", - "EMAIL", - "OAUTH2", - "JWT", - "CERTIFICATE", - "PRE_SHARED_SYMMETRIC_KEY", - "OKTA_CLIENT_SESSION", - "DEVICE_UDID", - null - ], "type": ["string", "null"] }, "externalSessionId": { @@ -103,11 +70,9 @@ "geolocation": { "properties": { "lat": { - "format": "double", "type": ["number", "null"] }, "lon": { - "format": "double", "type": ["number", "null"] } }, @@ -160,7 +125,7 @@ "type": ["string", "null"] }, "eventType": { - "type": "string" + "type": ["string", "null"] }, "legacyEventType": { "type": ["string", "null"] @@ -171,23 +136,14 @@ "type": ["string", "null"] }, "result": { - "enum": [ - "SUCCESS", - "FAILURE", - "SKIPPED", - "ALLOW", - "DENY", - "CHALLENGE", - "UNKNOWN" - ], - "type": "string" + "type": ["string", "null"] } }, "type": ["object", "null"] }, "published": { "format": "date-time", - "type": "string" + "type": ["string", "null"] }, "request": { "properties": { @@ -205,11 +161,9 @@ "geolocation": { "properties": { "lat": { - "format": "double", "type": ["number", "null"] }, "lon": { - "format": "double", "type": ["number", "null"] } }, @@ -262,8 +216,7 @@ "type": ["object", "null"] }, "severity": { - "enum": ["DEBUG", "INFO", "WARN", "ERROR"], - "type": "string" + "type": ["string", "null"] }, "target": { "items": { @@ -278,10 +231,10 @@ "type": ["string", "null"] }, "id": { - "type": "string" + "type": ["string", "null"] }, "type": { - "type": "string" + "type": ["string", "null"] } }, "type": ["object", "null"] @@ -303,11 +256,11 @@ "type": ["object", "null"] }, "uuid": { - "type": "string" + "type": ["string", "null"] }, "version": { - "type": "string" + "type": ["string", "null"] } }, - "type": "object" + "type": ["object", "null"] } diff --git a/airbyte-integrations/connectors/source-okta/source_okta/schemas/shared/shared-link.json b/airbyte-integrations/connectors/source-okta/source_okta/schemas/shared/shared-link.json deleted file mode 100644 index 97c59eb3e3b9..000000000000 --- a/airbyte-integrations/connectors/source-okta/source_okta/schemas/shared/shared-link.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "$id": "shared-link.json", - "properties": { - "herf": { - "format": "uri", - "type": ["string", "null"] - } - }, - "type": ["object", "null"] -} diff --git a/airbyte-integrations/connectors/source-okta/source_okta/schemas/shared/shared-role.json b/airbyte-integrations/connectors/source-okta/source_okta/schemas/shared/shared-role.json deleted file mode 100644 index be3e8fdcb0f8..000000000000 --- a/airbyte-integrations/connectors/source-okta/source_okta/schemas/shared/shared-role.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "properties": { - "id": { - "type": "string" - }, - "label": { - "type": "string" - }, - "type": { - "enum": [ - "API_ACCESS_MANAGEMENT_ADMIN", - "APP_ADMIN", - "GROUP_MEMBERSHIP_ADMIN", - "HELP_DESK_ADMIN", - "MOBILE_ADMIN", - "ORG_ADMIN", - "READ_ONLY_ADMIN", - "REPORT_ADMIN", - "SUPER_ADMIN", - "USER_ADMIN", - "CUSTOM" - ], - "type": "string" - }, - "status": { - "enum": [ - "ACTIVE", - "DEPROVISIONED", - "LOCKED_OUT", - "PASSWORD_EXPIRED", - "PROVISIONED", - "RECOVERY", - "STAGED", - "SUSPENDED" - ], - "type": "string" - }, - "created": { - "format": "date-time", - "type": "string" - }, - "lastUpdated": { - "format": "date-time", - "type": "string" - }, - "assignmentType": { - "enum": ["USER", "GROUP"], - "type": "string" - }, - "resource-set": { - "description": "The Resource Set ID in which the Role is granted (only present for Custom Roles)", - "type": ["string", "null"] - }, - "_links": { - "properties": { - "assignee": { - "properties": { - "assignee": { - "$ref": "shared-link.json", - "description": "Gets the User or Group through which this Role is assigned" - }, - "role": { - "$ref": "shared-link.json", - "description": "(Only for Custom Roles) gets the Role that is granted through this assignment" - }, - "resource-set": { - "$ref": "shared-link.json", - "description": "(Only for Custom Roles) Gets the Resource Set that is targeted by this assignment" - }, - "permissions": { - "$ref": "shared-link.json", - "description": "(Only for Custom Roles) Gets a list of Permissions that is granted through this assignment" - }, - "member": { - "$ref": "shared-link.json", - "description": "(Only for Custom Roles) gets the Member object from the Binding that grants this Role" - } - } - } - }, - "type": ["object", "null"] - } - }, - "type": "object" -} diff --git a/airbyte-integrations/connectors/source-okta/source_okta/schemas/shared/shared-user.json b/airbyte-integrations/connectors/source-okta/source_okta/schemas/shared/shared-user.json deleted file mode 100644 index b80976d8e20f..000000000000 --- a/airbyte-integrations/connectors/source-okta/source_okta/schemas/shared/shared-user.json +++ /dev/null @@ -1,228 +0,0 @@ -{ - "$id": "shared-users.json", - "properties": { - "_links": { - "type": ["object", "null"] - }, - "activated": { - "format": "date-time", - "type": ["string", "null"] - }, - "created": { - "format": "date-time", - "type": "string" - }, - "credentials": { - "properties": { - "password": { - "properties": { - "hash": { - "properties": { - "algorithm": { - "enum": ["BCRYPT", "SHA-512", "SHA-256", "SHA-1", "MD5"], - "type": ["string", "null"] - }, - "salt": { - "type": ["string", "null"] - }, - "saltOrder": { - "type": ["string", "null"] - }, - "value": { - "type": ["string", "null"] - }, - "workFactor": { - "type": ["integer", "null"] - } - }, - "type": ["object", "null"] - }, - "hook": { - "properties": { - "type": { - "type": ["string", "null"] - } - }, - "type": ["object", "null"] - }, - "value": { - "format": "password", - "type": ["string", "null"] - } - }, - "type": ["object", "null"] - }, - "provider": { - "properties": { - "name": { - "type": ["string", "null"] - }, - "type": { - "enum": [ - "ACTIVE_DIRECTORY", - "FEDERATION", - "LDAP", - "OKTA", - "SOCIAL", - "IMPORT" - ], - "type": ["string", "null"] - } - }, - "type": ["object", "null"] - }, - "recovery_question": { - "properties": { - "answer": { - "type": ["string", "null"] - }, - "question": { - "type": ["string", "null"] - } - }, - "type": ["object", "null"] - } - }, - "type": "object" - }, - "id": { - "type": "string" - }, - "lastLogin": { - "format": "date-time", - "type": ["string", "null"] - }, - "lastUpdated": { - "format": "date-time", - "type": "string" - }, - "passwordChanged": { - "format": "date-time", - "type": ["string", "null"] - }, - "profile": { - "properties": { - "city": { - "type": ["string", "null"] - }, - "costCenter": { - "type": ["string", "null"] - }, - "countryCode": { - "type": ["string", "null"] - }, - "department": { - "type": ["string", "null"] - }, - "displayName": { - "type": ["string", "null"] - }, - "division": { - "type": ["string", "null"] - }, - "email": { - "type": ["string", "null"] - }, - "employeeNumber": { - "type": ["string", "null"] - }, - "firstName": { - "type": ["string", "null"] - }, - "honorificPrefix": { - "type": ["string", "null"] - }, - "honorificSuffix": { - "type": ["string", "null"] - }, - "lastName": { - "type": ["string", "null"] - }, - "locale": { - "type": ["string", "null"] - }, - "login": { - "type": ["string", "null"] - }, - "manager": { - "type": ["string", "null"] - }, - "managerId": { - "type": ["string", "null"] - }, - "middleName": { - "type": ["string", "null"] - }, - "mobilePhone": { - "type": ["string", "null"] - }, - "nickName": { - "type": ["string", "null"] - }, - "organization": { - "type": ["string", "null"] - }, - "postalAddress": { - "type": ["string", "null"] - }, - "preferredLanguage": { - "type": ["string", "null"] - }, - "primaryPhone": { - "type": ["string", "null"] - }, - "profileUrl": { - "type": ["string", "null"] - }, - "secondEmail": { - "type": ["string", "null"] - }, - "state": { - "type": ["string", "null"] - }, - "streetAddress": { - "type": ["string", "null"] - }, - "timezone": { - "type": ["string", "null"] - }, - "title": { - "type": ["string", "null"] - }, - "userType": { - "type": ["string", "null"] - }, - "zipCode": { - "type": ["string", "null"] - } - }, - "type": "object" - }, - "status": { - "enum": [ - "ACTIVE", - "DEPROVISIONED", - "LOCKED_OUT", - "PASSWORD_EXPIRED", - "PROVISIONED", - "RECOVERY", - "STAGED", - "SUSPENDED" - ], - "type": "string" - }, - "statusChanged": { - "format": "date-time", - "type": ["string", "null"] - }, - "type": { - "properties": { - "id": { - "type": ["string", "null"] - } - }, - "type": "object" - } - }, - "type": "object" -} diff --git a/airbyte-integrations/connectors/source-okta/source_okta/schemas/user_role_assignments.json b/airbyte-integrations/connectors/source-okta/source_okta/schemas/user_role_assignments.json index 49a6dfb4c85a..c55529918cf5 100644 --- a/airbyte-integrations/connectors/source-okta/source_okta/schemas/user_role_assignments.json +++ b/airbyte-integrations/connectors/source-okta/source_okta/schemas/user_role_assignments.json @@ -1,3 +1,81 @@ { - "$ref": "shared-role.json" + "type": ["null", "object"], + "properties": { + "id": { + "type": ["null", "string"] + }, + "label": { + "type": ["null", "string"] + }, + "type": { + "type": ["null", "string"] + }, + "status": { + "type": ["null", "string"] + }, + "created": { + "format": "date-time", + "type": ["null", "string"] + }, + "lastUpdated": { + "format": "date-time", + "type": ["null", "string"] + }, + "assignmentType": { + "type": ["null", "string"] + }, + "resource-set": { + "type": ["string", "null"] + }, + "_links": { + "type": ["object", "null"], + "properties": { + "assignee": { + "type": ["object", "null"], + "properties": { + "assignee": { + "type": ["object", "null"], + "properties": { + "herf": { + "type": ["null", "string"] + } + } + }, + "role": { + "type": ["object", "null"], + "properties": { + "herf": { + "type": ["null", "string"] + } + } + }, + "resource-set": { + "type": ["object", "null"], + "properties": { + "herf": { + "type": ["null", "string"] + } + } + }, + "permissions": { + "type": ["object", "null"], + "properties": { + "herf": { + "type": ["null", "string"] + } + } + }, + "member": { + "type": ["object", "null"], + "properties": { + "herf": { + "type": ["null", "string"] + } + } + } + } + } + } + } + } } diff --git a/airbyte-integrations/connectors/source-okta/source_okta/schemas/users.json b/airbyte-integrations/connectors/source-okta/source_okta/schemas/users.json index f1dd1977e55a..675124c1cd0f 100644 --- a/airbyte-integrations/connectors/source-okta/source_okta/schemas/users.json +++ b/airbyte-integrations/connectors/source-okta/source_okta/schemas/users.json @@ -1,3 +1,216 @@ { - "$ref": "shared-user.json" + "type": ["object", "null"], + "additionalProperties": true, + "properties": { + "_links": { + "type": ["object", "null"] + }, + "activated": { + "format": "date-time", + "type": ["string", "null"] + }, + "created": { + "format": "date-time", + "type": ["string", "null"] + }, + "credentials": { + "type": ["object", "null"], + "additionalProperties": true, + "properties": { + "password": { + "type": ["object", "null"], + "additionalProperties": true, + "properties": { + "hash": { + "additionalProperties": true, + "properties": { + "algorithm": { + "type": ["string", "null"] + }, + "salt": { + "type": ["string", "null"] + }, + "saltOrder": { + "type": ["string", "null"] + }, + "value": { + "type": ["string", "null"] + }, + "workFactor": { + "type": ["integer", "null"] + } + }, + "type": ["object", "null"] + }, + "hook": { + "additionalProperties": true, + "properties": { + "type": { + "type": ["string", "null"] + } + }, + "type": ["object", "null"] + }, + "value": { + "type": ["string", "null"] + } + } + }, + "provider": { + "additionalProperties": true, + "properties": { + "name": { + "type": ["string", "null"] + }, + "type": { + "type": ["string", "null"] + } + }, + "type": ["object", "null"] + }, + "recovery_question": { + "additionalProperties": true, + "properties": { + "answer": { + "type": ["string", "null"] + }, + "question": { + "type": ["string", "null"] + } + }, + "type": ["object", "null"] + } + } + }, + "id": { + "type": ["string", "null"] + }, + "lastLogin": { + "format": "date-time", + "type": ["string", "null"] + }, + "lastUpdated": { + "format": "date-time", + "type": ["string", "null"] + }, + "passwordChanged": { + "format": "date-time", + "type": ["string", "null"] + }, + "profile": { + "additionalProperties": true, + "properties": { + "city": { + "type": ["string", "null"] + }, + "costCenter": { + "type": ["string", "null"] + }, + "countryCode": { + "type": ["string", "null"] + }, + "department": { + "type": ["string", "null"] + }, + "displayName": { + "type": ["string", "null"] + }, + "division": { + "type": ["string", "null"] + }, + "email": { + "type": ["string", "null"] + }, + "employeeNumber": { + "type": ["string", "null"] + }, + "firstName": { + "type": ["string", "null"] + }, + "honorificPrefix": { + "type": ["string", "null"] + }, + "honorificSuffix": { + "type": ["string", "null"] + }, + "lastName": { + "type": ["string", "null"] + }, + "locale": { + "type": ["string", "null"] + }, + "login": { + "type": ["string", "null"] + }, + "manager": { + "type": ["string", "null"] + }, + "managerId": { + "type": ["string", "null"] + }, + "middleName": { + "type": ["string", "null"] + }, + "mobilePhone": { + "type": ["string", "null"] + }, + "nickName": { + "type": ["string", "null"] + }, + "organization": { + "type": ["string", "null"] + }, + "postalAddress": { + "type": ["string", "null"] + }, + "preferredLanguage": { + "type": ["string", "null"] + }, + "primaryPhone": { + "type": ["string", "null"] + }, + "profileUrl": { + "type": ["string", "null"] + }, + "secondEmail": { + "type": ["string", "null"] + }, + "state": { + "type": ["string", "null"] + }, + "streetAddress": { + "type": ["string", "null"] + }, + "timezone": { + "type": ["string", "null"] + }, + "title": { + "type": ["string", "null"] + }, + "userType": { + "type": ["string", "null"] + }, + "zipCode": { + "type": ["string", "null"] + } + }, + "type": ["object", "null"] + }, + "status": { + "type": ["string", "null"] + }, + "statusChanged": { + "format": "date-time", + "type": ["string", "null"] + }, + "type": { + "additionalProperties": true, + "properties": { + "id": { + "type": ["string", "null"] + } + }, + "type": ["object", "null"] + } + } } diff --git a/docs/integrations/sources/okta.md b/docs/integrations/sources/okta.md index 80c5028e4545..7ef4ca7f5dda 100644 --- a/docs/integrations/sources/okta.md +++ b/docs/integrations/sources/okta.md @@ -61,6 +61,7 @@ Different Okta APIs require different admin privilege levels. API tokens inherit | Version | Date | Pull Request | Subject | |:--------|:-----------|:---------------------------------------------------------|:-------------------------------------------------------------------------------| +| 0.1.10 | 2022-08-01 | [15179](https://github.com/airbytehq/airbyte/pull/15179) | Fixed broken schemas for all streams | 0.1.9 | 2022-07-25 | [15001](https://github.com/airbytehq/airbyte/pull/15001) | Return deprovisioned users | | 0.1.8 | 2022-07-19 | [14710](https://github.com/airbytehq/airbyte/pull/14710) | Implement OAuth2.0 authorization method | | 0.1.7 | 2022-07-13 | [14556](https://github.com/airbytehq/airbyte/pull/14556) | add User_Role_Assignments and Group_Role_Assignments streams (full fetch only) |