@dremio/js-sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/dist/cloud/arctic/ArcticCatalog.d.ts +34 -0
- package/dist/cloud/arctic/ArcticCatalog.js +46 -0
- package/dist/cloud/arctic/ArcticCatalog.js.map +1 -0
- package/dist/cloud/arctic/ArcticResource.d.ts +15 -0
- package/dist/cloud/arctic/ArcticResource.js +40 -0
- package/dist/cloud/arctic/ArcticResource.js.map +1 -0
- package/dist/cloud/credentials/fromAccessToken.d.ts +2 -0
- package/dist/cloud/credentials/fromAccessToken.js +19 -0
- package/dist/cloud/credentials/fromAccessToken.js.map +1 -0
- package/dist/cloud/credentials/fromRefreshToken.d.ts +5 -0
- package/dist/cloud/credentials/fromRefreshToken.js +47 -0
- package/dist/cloud/credentials/fromRefreshToken.js.map +1 -0
- package/dist/cloud/credentials/fromUsernamePassword.d.ts +2 -0
- package/dist/cloud/credentials/fromUsernamePassword.js +41 -0
- package/dist/cloud/credentials/fromUsernamePassword.js.map +1 -0
- package/dist/cloud/credentials/index.d.ts +4 -0
- package/dist/cloud/credentials/index.js +20 -0
- package/dist/cloud/credentials/index.js.map +1 -0
- package/dist/cloud/engines/Engine.d.ts +47 -0
- package/dist/cloud/engines/Engine.js +58 -0
- package/dist/cloud/engines/Engine.js.map +1 -0
- package/dist/cloud/engines/EnginesResource.d.ts +15 -0
- package/dist/cloud/engines/EnginesResource.js +42 -0
- package/dist/cloud/engines/EnginesResource.js.map +1 -0
- package/dist/cloud/engines/utils.d.ts +17 -0
- package/dist/cloud/engines/utils.js +59 -0
- package/dist/cloud/engines/utils.js.map +1 -0
- package/dist/cloud/index.d.ts +487 -0
- package/dist/cloud/index.js +47 -0
- package/dist/cloud/index.js.map +1 -0
- package/dist/cloud/interfaces.d.ts +13 -0
- package/dist/cloud/interfaces.js +18 -0
- package/dist/cloud/interfaces.js.map +1 -0
- package/dist/cloud/oauth/OAuthApplication.d.ts +26 -0
- package/dist/cloud/oauth/OAuthApplication.js +49 -0
- package/dist/cloud/oauth/OAuthApplication.js.map +1 -0
- package/dist/cloud/oauth/OAuthApplicationsResource.d.ts +15 -0
- package/dist/cloud/oauth/OAuthApplicationsResource.js +66 -0
- package/dist/cloud/oauth/OAuthApplicationsResource.js.map +1 -0
- package/dist/cloud/oauth/oauth.d.ts +32 -0
- package/dist/cloud/oauth/oauth.js +57 -0
- package/dist/cloud/oauth/oauth.js.map +1 -0
- package/dist/cloud/projects/Project.d.ts +49 -0
- package/dist/cloud/projects/Project.js +61 -0
- package/dist/cloud/projects/Project.js.map +1 -0
- package/dist/cloud/projects/ProjectsResource.d.ts +17 -0
- package/dist/cloud/projects/ProjectsResource.js +50 -0
- package/dist/cloud/projects/ProjectsResource.js.map +1 -0
- package/dist/cloud/projects/projectApiMethods.d.ts +9 -0
- package/dist/cloud/projects/projectApiMethods.js +43 -0
- package/dist/cloud/projects/projectApiMethods.js.map +1 -0
- package/dist/cloud/projects/utils.d.ts +2 -0
- package/dist/cloud/projects/utils.js +37 -0
- package/dist/cloud/projects/utils.js.map +1 -0
- package/dist/cloud/resources.d.ts +472 -0
- package/dist/cloud/resources.js +41 -0
- package/dist/cloud/resources.js.map +1 -0
- package/dist/cloud/users/CloudUser.d.ts +4 -0
- package/dist/cloud/users/CloudUser.js +27 -0
- package/dist/cloud/users/CloudUser.js.map +1 -0
- package/dist/cloud/users/CloudUsersResource.d.ts +13 -0
- package/dist/cloud/users/CloudUsersResource.js +37 -0
- package/dist/cloud/users/CloudUsersResource.js.map +1 -0
- package/dist/common/Config.d.ts +54 -0
- package/dist/common/Config.js +17 -0
- package/dist/common/Config.js.map +1 -0
- package/dist/common/CredentialProvider.d.ts +4 -0
- package/dist/common/CredentialProvider.js +17 -0
- package/dist/common/CredentialProvider.js.map +1 -0
- package/dist/common/HttpError.d.ts +21 -0
- package/dist/common/HttpError.js +74 -0
- package/dist/common/HttpError.js.map +1 -0
- package/dist/common/Params.d.ts +16 -0
- package/dist/common/Params.js +17 -0
- package/dist/common/Params.js.map +1 -0
- package/dist/common/Problem.d.ts +45 -0
- package/dist/common/Problem.js +37 -0
- package/dist/common/Problem.js.map +1 -0
- package/dist/common/Query.d.ts +6 -0
- package/dist/common/Query.js +30 -0
- package/dist/common/Query.js.map +1 -0
- package/dist/common/batch.d.ts +2 -0
- package/dist/common/batch.js +42 -0
- package/dist/common/batch.js.map +1 -0
- package/dist/common/createRequest.d.ts +6 -0
- package/dist/common/createRequest.js +71 -0
- package/dist/common/createRequest.js.map +1 -0
- package/dist/common/fromAbortable.d.ts +4 -0
- package/dist/common/fromAbortable.js +35 -0
- package/dist/common/fromAbortable.js.map +1 -0
- package/dist/common/problems.d.ts +9 -0
- package/dist/common/problems.js +25 -0
- package/dist/common/problems.js.map +1 -0
- package/dist/common/sharedExports.d.ts +5 -0
- package/dist/common/sharedExports.js +21 -0
- package/dist/common/sharedExports.js.map +1 -0
- package/dist/enterprise/Grantee.d.ts +9 -0
- package/dist/enterprise/Grantee.js +17 -0
- package/dist/enterprise/Grantee.js.map +1 -0
- package/dist/enterprise/Ownable.d.ts +7 -0
- package/dist/enterprise/Ownable.js +17 -0
- package/dist/enterprise/Ownable.js.map +1 -0
- package/dist/enterprise/catalog/CatalogLineage.d.ts +37 -0
- package/dist/enterprise/catalog/CatalogLineage.js +26 -0
- package/dist/enterprise/catalog/CatalogLineage.js.map +1 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseDatasetCatalogObject.d.ts +39 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseDatasetCatalogObject.js +45 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseDatasetCatalogObject.js.map +1 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseFileCatalogObject.d.ts +6 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseFileCatalogObject.js +22 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseFileCatalogObject.js.map +1 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseFolderCatalogObject.d.ts +7 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseFolderCatalogObject.js +25 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseFolderCatalogObject.js.map +1 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseFunctionCatalogObject.d.ts +6 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseFunctionCatalogObject.js +22 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseFunctionCatalogObject.js.map +1 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseHomeCatalogObject.d.ts +6 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseHomeCatalogObject.js +22 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseHomeCatalogObject.js.map +1 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseSourceCatalogObject.d.ts +46 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseSourceCatalogObject.js +44 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseSourceCatalogObject.js.map +1 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseSpaceCatalogObject.d.ts +6 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseSpaceCatalogObject.js +22 -0
- package/dist/enterprise/catalog/CatalogObjects/EnterpriseSpaceCatalogObject.js.map +1 -0
- package/dist/enterprise/catalog/CatalogObjects/index.d.ts +10 -0
- package/dist/enterprise/catalog/CatalogObjects/index.js +17 -0
- package/dist/enterprise/catalog/CatalogObjects/index.js.map +1 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseDatasetCatalogReference.d.ts +14 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseDatasetCatalogReference.js +28 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseDatasetCatalogReference.js.map +1 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseFileCatalogReference.d.ts +3 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseFileCatalogReference.js +19 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseFileCatalogReference.js.map +1 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseFolderCatalogReference.d.ts +12 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseFolderCatalogReference.js +28 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseFolderCatalogReference.js.map +1 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseFunctionCatalogReference.d.ts +3 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseFunctionCatalogReference.js +19 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseFunctionCatalogReference.js.map +1 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseHomeCatalogReference.d.ts +3 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseHomeCatalogReference.js +19 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseHomeCatalogReference.js.map +1 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseSourceCatalogReference.d.ts +12 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseSourceCatalogReference.js +28 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseSourceCatalogReference.js.map +1 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseSpaceCatalogReference.d.ts +3 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseSpaceCatalogReference.js +19 -0
- package/dist/enterprise/catalog/CatalogReferences/EnterpriseSpaceCatalogReference.js.map +1 -0
- package/dist/enterprise/catalog/CatalogReferences/index.d.ts +9 -0
- package/dist/enterprise/catalog/CatalogReferences/index.js +17 -0
- package/dist/enterprise/catalog/CatalogReferences/index.js.map +1 -0
- package/dist/enterprise/catalog/CatalogReferences/retrieveCatalogGrants.d.ts +15 -0
- package/dist/enterprise/catalog/CatalogReferences/retrieveCatalogGrants.js +30 -0
- package/dist/enterprise/catalog/CatalogReferences/retrieveCatalogGrants.js.map +1 -0
- package/dist/enterprise/catalog/EnterpriseCatalogResource.d.ts +10 -0
- package/dist/enterprise/catalog/EnterpriseCatalogResource.js +38 -0
- package/dist/enterprise/catalog/EnterpriseCatalogResource.js.map +1 -0
- package/dist/enterprise/catalog/catalogObjectFromEntity.d.ts +3 -0
- package/dist/enterprise/catalog/catalogObjectFromEntity.js +73 -0
- package/dist/enterprise/catalog/catalogObjectFromEntity.js.map +1 -0
- package/dist/enterprise/catalog/catalogReferenceFromProperties.d.ts +6 -0
- package/dist/enterprise/catalog/catalogReferenceFromProperties.js +46 -0
- package/dist/enterprise/catalog/catalogReferenceFromProperties.js.map +1 -0
- package/dist/enterprise/catalog/catalogRetrieve.d.ts +5 -0
- package/dist/enterprise/catalog/catalogRetrieve.js +119 -0
- package/dist/enterprise/catalog/catalogRetrieve.js.map +1 -0
- package/dist/enterprise/credentials/exchangePat.d.ts +12 -0
- package/dist/enterprise/credentials/exchangePat.js +55 -0
- package/dist/enterprise/credentials/exchangePat.js.map +1 -0
- package/dist/enterprise/credentials/fromPat.d.ts +2 -0
- package/dist/enterprise/credentials/fromPat.js +36 -0
- package/dist/enterprise/credentials/fromPat.js.map +1 -0
- package/dist/enterprise/credentials/index.d.ts +2 -0
- package/dist/enterprise/credentials/index.js +18 -0
- package/dist/enterprise/credentials/index.js.map +1 -0
- package/dist/enterprise/engines/Engine.d.ts +78 -0
- package/dist/enterprise/engines/Engine.js +75 -0
- package/dist/enterprise/engines/Engine.js.map +1 -0
- package/dist/enterprise/engines/EnginesResource.d.ts +10 -0
- package/dist/enterprise/engines/EnginesResource.js +34 -0
- package/dist/enterprise/engines/EnginesResource.js.map +1 -0
- package/dist/enterprise/index.d.ts +60 -0
- package/dist/enterprise/index.js +43 -0
- package/dist/enterprise/index.js.map +1 -0
- package/dist/enterprise/interfaces.d.ts +12 -0
- package/dist/enterprise/interfaces.js +18 -0
- package/dist/enterprise/interfaces.js.map +1 -0
- package/dist/enterprise/reflections/ReflectionSummary.d.ts +74 -0
- package/dist/enterprise/reflections/ReflectionSummary.js +82 -0
- package/dist/enterprise/reflections/ReflectionSummary.js.map +1 -0
- package/dist/enterprise/resources.d.ts +44 -0
- package/dist/enterprise/resources.js +36 -0
- package/dist/enterprise/resources.js.map +1 -0
- package/dist/enterprise/roles/Role.d.ts +23 -0
- package/dist/enterprise/roles/Role.js +38 -0
- package/dist/enterprise/roles/Role.js.map +1 -0
- package/dist/enterprise/roles/RolesResource.d.ts +8 -0
- package/dist/enterprise/roles/RolesResource.js +32 -0
- package/dist/enterprise/roles/RolesResource.js.map +1 -0
- package/dist/enterprise/scripts/EnterpriseScript.d.ts +46 -0
- package/dist/enterprise/scripts/EnterpriseScript.js +62 -0
- package/dist/enterprise/scripts/EnterpriseScript.js.map +1 -0
- package/dist/enterprise/scripts/EnterpriseScriptsResource.d.ts +15 -0
- package/dist/enterprise/scripts/EnterpriseScriptsResource.js +72 -0
- package/dist/enterprise/scripts/EnterpriseScriptsResource.js.map +1 -0
- package/dist/enterprise/users/EnterpriseUser.d.ts +23 -0
- package/dist/enterprise/users/EnterpriseUser.js +43 -0
- package/dist/enterprise/users/EnterpriseUser.js.map +1 -0
- package/dist/enterprise/users/EnterpriseUsersResource.d.ts +11 -0
- package/dist/enterprise/users/EnterpriseUsersResource.js +32 -0
- package/dist/enterprise/users/EnterpriseUsersResource.js.map +1 -0
- package/dist/oss/catalog/CatalogObjects/DatasetCatalogObject.d.ts +43 -0
- package/dist/oss/catalog/CatalogObjects/DatasetCatalogObject.js +56 -0
- package/dist/oss/catalog/CatalogObjects/DatasetCatalogObject.js.map +1 -0
- package/dist/oss/catalog/CatalogObjects/FileCatalogObject.d.ts +17 -0
- package/dist/oss/catalog/CatalogObjects/FileCatalogObject.js +48 -0
- package/dist/oss/catalog/CatalogObjects/FileCatalogObject.js.map +1 -0
- package/dist/oss/catalog/CatalogObjects/FolderCatalogObject.d.ts +20 -0
- package/dist/oss/catalog/CatalogObjects/FolderCatalogObject.js +48 -0
- package/dist/oss/catalog/CatalogObjects/FolderCatalogObject.js.map +1 -0
- package/dist/oss/catalog/CatalogObjects/FunctionCatalogObject.d.ts +17 -0
- package/dist/oss/catalog/CatalogObjects/FunctionCatalogObject.js +47 -0
- package/dist/oss/catalog/CatalogObjects/FunctionCatalogObject.js.map +1 -0
- package/dist/oss/catalog/CatalogObjects/HomeCatalogObject.d.ts +18 -0
- package/dist/oss/catalog/CatalogObjects/HomeCatalogObject.js +48 -0
- package/dist/oss/catalog/CatalogObjects/HomeCatalogObject.js.map +1 -0
- package/dist/oss/catalog/CatalogObjects/SourceCatalogObject.d.ts +60 -0
- package/dist/oss/catalog/CatalogObjects/SourceCatalogObject.js +95 -0
- package/dist/oss/catalog/CatalogObjects/SourceCatalogObject.js.map +1 -0
- package/dist/oss/catalog/CatalogObjects/SpaceCatalogObject.d.ts +19 -0
- package/dist/oss/catalog/CatalogObjects/SpaceCatalogObject.js +53 -0
- package/dist/oss/catalog/CatalogObjects/SpaceCatalogObject.js.map +1 -0
- package/dist/oss/catalog/CatalogObjects/VersionedDatasetCatalogObject.d.ts +31 -0
- package/dist/oss/catalog/CatalogObjects/VersionedDatasetCatalogObject.js +58 -0
- package/dist/oss/catalog/CatalogObjects/VersionedDatasetCatalogObject.js.map +1 -0
- package/dist/oss/catalog/CatalogObjects/index.d.ts +10 -0
- package/dist/oss/catalog/CatalogObjects/index.js +17 -0
- package/dist/oss/catalog/CatalogObjects/index.js.map +1 -0
- package/dist/oss/catalog/CatalogObjects/utils/catalogObjectFromEntity.d.ts +11 -0
- package/dist/oss/catalog/CatalogObjects/utils/catalogObjectFromEntity.js +73 -0
- package/dist/oss/catalog/CatalogObjects/utils/catalogObjectFromEntity.js.map +1 -0
- package/dist/oss/catalog/CatalogReferences/BaseCatalogReference.d.ts +16 -0
- package/dist/oss/catalog/CatalogReferences/BaseCatalogReference.js +34 -0
- package/dist/oss/catalog/CatalogReferences/BaseCatalogReference.js.map +1 -0
- package/dist/oss/catalog/CatalogReferences/DatasetCatalogReference.d.ts +17 -0
- package/dist/oss/catalog/CatalogReferences/DatasetCatalogReference.js +39 -0
- package/dist/oss/catalog/CatalogReferences/DatasetCatalogReference.js.map +1 -0
- package/dist/oss/catalog/CatalogReferences/FileCatalogReference.d.ts +9 -0
- package/dist/oss/catalog/CatalogReferences/FileCatalogReference.js +28 -0
- package/dist/oss/catalog/CatalogReferences/FileCatalogReference.js.map +1 -0
- package/dist/oss/catalog/CatalogReferences/FolderCatalogReference.d.ts +22 -0
- package/dist/oss/catalog/CatalogReferences/FolderCatalogReference.js +40 -0
- package/dist/oss/catalog/CatalogReferences/FolderCatalogReference.js.map +1 -0
- package/dist/oss/catalog/CatalogReferences/FunctionCatalogReference.d.ts +9 -0
- package/dist/oss/catalog/CatalogReferences/FunctionCatalogReference.js +28 -0
- package/dist/oss/catalog/CatalogReferences/FunctionCatalogReference.js.map +1 -0
- package/dist/oss/catalog/CatalogReferences/HomeCatalogReference.d.ts +20 -0
- package/dist/oss/catalog/CatalogReferences/HomeCatalogReference.js +38 -0
- package/dist/oss/catalog/CatalogReferences/HomeCatalogReference.js.map +1 -0
- package/dist/oss/catalog/CatalogReferences/SourceCatalogReference.d.ts +24 -0
- package/dist/oss/catalog/CatalogReferences/SourceCatalogReference.js +61 -0
- package/dist/oss/catalog/CatalogReferences/SourceCatalogReference.js.map +1 -0
- package/dist/oss/catalog/CatalogReferences/SpaceCatalogReference.d.ts +20 -0
- package/dist/oss/catalog/CatalogReferences/SpaceCatalogReference.js +38 -0
- package/dist/oss/catalog/CatalogReferences/SpaceCatalogReference.js.map +1 -0
- package/dist/oss/catalog/CatalogReferences/index.d.ts +9 -0
- package/dist/oss/catalog/CatalogReferences/index.js +17 -0
- package/dist/oss/catalog/CatalogReferences/index.js.map +1 -0
- package/dist/oss/catalog/CatalogReferences/utils/catalogChildren.d.ts +14 -0
- package/dist/oss/catalog/CatalogReferences/utils/catalogChildren.js +62 -0
- package/dist/oss/catalog/CatalogReferences/utils/catalogChildren.js.map +1 -0
- package/dist/oss/catalog/CatalogReferences/utils/catalogReferenceEntityToProperties.d.ts +1 -0
- package/dist/oss/catalog/CatalogReferences/utils/catalogReferenceEntityToProperties.js +42 -0
- package/dist/oss/catalog/CatalogReferences/utils/catalogReferenceEntityToProperties.js.map +1 -0
- package/dist/oss/catalog/CatalogReferences/utils/catalogReferenceFromProperties.d.ts +6 -0
- package/dist/oss/catalog/CatalogReferences/utils/catalogReferenceFromProperties.js +45 -0
- package/dist/oss/catalog/CatalogReferences/utils/catalogReferenceFromProperties.js.map +1 -0
- package/dist/oss/catalog/CatalogReferences/utils/getTags.d.ts +5 -0
- package/dist/oss/catalog/CatalogReferences/utils/getTags.js +23 -0
- package/dist/oss/catalog/CatalogReferences/utils/getTags.js.map +1 -0
- package/dist/oss/catalog/CatalogReferences/utils/getWiki.d.ts +5 -0
- package/dist/oss/catalog/CatalogReferences/utils/getWiki.js +23 -0
- package/dist/oss/catalog/CatalogReferences/utils/getWiki.js.map +1 -0
- package/dist/oss/catalog/CatalogResource.d.ts +10 -0
- package/dist/oss/catalog/CatalogResource.js +38 -0
- package/dist/oss/catalog/CatalogResource.js.map +1 -0
- package/dist/oss/catalog/CatalogTags.d.ts +26 -0
- package/dist/oss/catalog/CatalogTags.js +60 -0
- package/dist/oss/catalog/CatalogTags.js.map +1 -0
- package/dist/oss/catalog/CatalogWiki.d.ts +26 -0
- package/dist/oss/catalog/CatalogWiki.js +60 -0
- package/dist/oss/catalog/CatalogWiki.js.map +1 -0
- package/dist/oss/catalog/VersionReference.d.ts +13 -0
- package/dist/oss/catalog/VersionReference.js +19 -0
- package/dist/oss/catalog/VersionReference.js.map +1 -0
- package/dist/oss/catalog/catalogErrors.d.ts +18 -0
- package/dist/oss/catalog/catalogErrors.js +36 -0
- package/dist/oss/catalog/catalogErrors.js.map +1 -0
- package/dist/oss/catalog/catalogRetrieve.d.ts +6 -0
- package/dist/oss/catalog/catalogRetrieve.js +119 -0
- package/dist/oss/catalog/catalogRetrieve.js.map +1 -0
- package/dist/oss/credentials/fromUsernamePassword.d.ts +2 -0
- package/dist/oss/credentials/fromUsernamePassword.js +41 -0
- package/dist/oss/credentials/fromUsernamePassword.js.map +1 -0
- package/dist/oss/credentials/index.d.ts +1 -0
- package/dist/oss/credentials/index.js +17 -0
- package/dist/oss/credentials/index.js.map +1 -0
- package/dist/oss/index.d.ts +55 -0
- package/dist/oss/index.js +42 -0
- package/dist/oss/index.js.map +1 -0
- package/dist/oss/interfaces.d.ts +8 -0
- package/dist/oss/interfaces.js +18 -0
- package/dist/oss/interfaces.js.map +1 -0
- package/dist/oss/jobs/Job.d.ts +71 -0
- package/dist/oss/jobs/Job.js +133 -0
- package/dist/oss/jobs/Job.js.map +1 -0
- package/dist/oss/jobs/JobsResource.d.ts +10 -0
- package/dist/oss/jobs/JobsResource.js +74 -0
- package/dist/oss/jobs/JobsResource.js.map +1 -0
- package/dist/oss/jobs/utils/JobResultsResponse.d.ts +85 -0
- package/dist/oss/jobs/utils/JobResultsResponse.js +17 -0
- package/dist/oss/jobs/utils/JobResultsResponse.js.map +1 -0
- package/dist/oss/jobs/utils/createArrayForFieldType.d.ts +2 -0
- package/dist/oss/jobs/utils/createArrayForFieldType.js +55 -0
- package/dist/oss/jobs/utils/createArrayForFieldType.js.map +1 -0
- package/dist/oss/jobs/utils/createColumnRecordFromSchema.d.ts +2 -0
- package/dist/oss/jobs/utils/createColumnRecordFromSchema.js +21 -0
- package/dist/oss/jobs/utils/createColumnRecordFromSchema.js.map +1 -0
- package/dist/oss/jobs/utils/mapRowData.d.ts +3 -0
- package/dist/oss/jobs/utils/mapRowData.js +46 -0
- package/dist/oss/jobs/utils/mapRowData.js.map +1 -0
- package/dist/oss/jobs/utils/mapRowsToColumns.d.ts +2 -0
- package/dist/oss/jobs/utils/mapRowsToColumns.js +27 -0
- package/dist/oss/jobs/utils/mapRowsToColumns.js.map +1 -0
- package/dist/oss/reflections/Reflection.d.ts +60 -0
- package/dist/oss/reflections/Reflection.js +41 -0
- package/dist/oss/reflections/Reflection.js.map +1 -0
- package/dist/oss/resources.d.ts +38 -0
- package/dist/oss/resources.js +30 -0
- package/dist/oss/resources.js.map +1 -0
- package/dist/oss/scripts/Script.d.ts +64 -0
- package/dist/oss/scripts/Script.js +94 -0
- package/dist/oss/scripts/Script.js.map +1 -0
- package/dist/oss/scripts/ScriptErrors.d.ts +19 -0
- package/dist/oss/scripts/ScriptErrors.js +37 -0
- package/dist/oss/scripts/ScriptErrors.js.map +1 -0
- package/dist/oss/scripts/ScriptsResource.d.ts +15 -0
- package/dist/oss/scripts/ScriptsResource.js +72 -0
- package/dist/oss/scripts/ScriptsResource.js.map +1 -0
- package/dist/oss/users/User.d.ts +30 -0
- package/dist/oss/users/User.js +60 -0
- package/dist/oss/users/User.js.map +1 -0
- package/dist/oss/users/UsersResource.d.ts +11 -0
- package/dist/oss/users/UsersResource.js +32 -0
- package/dist/oss/users/UsersResource.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalogRetrieve.js","sourceRoot":"","sources":["../../../src/oss/catalog/catalogRetrieve.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2024-2025 Dremio Corporation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { batch } from \"../../common/batch.ts\";\nimport { Err, Ok, type Result } from \"ts-results-es\";\nimport type { SonarV3Config } from \"../../common/Config.ts\";\nimport { catalogObjectFromEntity } from \"./CatalogObjects/utils/catalogObjectFromEntity.ts\";\nimport { HttpError } from \"../../common/HttpError.ts\";\nimport { unableToRetrieveProblem } from \"./catalogErrors.ts\";\nimport type { CatalogObject } from \"./CatalogObjects/index.ts\";\nimport type { Problem } from \"../../common/Problem.ts\";\n\nexport const baseRetrieve = (config: SonarV3Config) =>\n batch(async (ids: Set<string>) => {\n const results = new Map<string, Result<CatalogObject, Problem>>();\n\n if (ids.size === 1) {\n const id = Array.from(ids).at(0)!;\n return config\n .sonarV3Request(`catalog/${id}?maxChildren=0`)\n .then((res) => res.json())\n .then((response) => {\n results.set(\n id,\n Ok(catalogObjectFromEntity(config, baseRetrieveByPath(config))(response)),\n );\n return results;\n })\n .catch((e) => {\n if (e instanceof HttpError) {\n results.set(id, Err(e.body));\n } else {\n results.set(id, Err(unableToRetrieveProblem()));\n }\n\n return results;\n });\n }\n\n const idsArray = Array.from(ids);\n const chunks = [];\n\n while (idsArray.length > 0) {\n chunks.push(idsArray.splice(0, Math.min(50, idsArray.length)));\n }\n\n const catalogItems = await Promise.all(\n chunks.map((chunk) =>\n config\n .sonarV3Request(`catalog/by-ids?maxChildren=0`, {\n body: JSON.stringify(chunk),\n headers: { \"Content-Type\": \"application/json\" },\n method: \"POST\",\n })\n .then((res) => res.json())\n .then((response) => response.data),\n ),\n ).then((chunks) => chunks.flat());\n\n for (const catalogItem of catalogItems) {\n results.set(\n catalogItem.id,\n Ok(catalogObjectFromEntity(config, baseRetrieveByPath(config))(catalogItem)),\n );\n }\n\n for (const id of ids) {\n if (!results.has(id)) {\n results.set(id, Err(unableToRetrieveProblem()));\n }\n }\n\n return results;\n });\n\nexport const baseRetrieveByPath = (config: SonarV3Config) =>\n batch(async (paths: Set<string[]>) => {\n const results = new Map<string[], Result<CatalogObject, Problem>>();\n\n // Because the key is a reference type (array), we need to store the\n // original path reference\n const originalKeyRef = new Map<string, string[]>();\n for (const key of paths) {\n originalKeyRef.set(JSON.stringify(key), key);\n }\n\n if (paths.size === 1) {\n const path = Array.from(paths).at(0)!;\n return config\n .sonarV3Request(`catalog/by-path/${path.map(encodeURIComponent).join(\"/\")}?maxChildren=0`)\n .then((res) => res.json())\n .then((response) => {\n results.set(\n path,\n Ok(catalogObjectFromEntity(config, baseRetrieveByPath(config))(response)),\n );\n return results;\n })\n .catch((e) => {\n if (e instanceof HttpError) {\n results.set(path, Err(e.body));\n } else {\n results.set(path, Err(unableToRetrieveProblem()));\n }\n return results;\n });\n }\n\n const pathsArray = Array.from(paths);\n const chunks = [];\n\n while (pathsArray.length > 0) {\n chunks.push(pathsArray.splice(0, Math.min(50, pathsArray.length)));\n }\n\n const catalogItems = await Promise.all(\n chunks.map((chunk) =>\n config\n .sonarV3Request(`catalog/by-paths?maxChildren=0`, {\n body: JSON.stringify(chunk),\n headers: { \"Content-Type\": \"application/json\" },\n method: \"POST\",\n })\n .then((res) => res.json())\n .then((response) => response.data),\n ),\n ).then((chunks) => chunks.flat());\n\n for (const catalogItem of catalogItems) {\n const resolved = catalogObjectFromEntity(config, baseRetrieveByPath(config))(catalogItem);\n const originalKey = originalKeyRef.get(JSON.stringify(resolved.path));\n if (originalKey) {\n results.set(originalKey, Ok(resolved));\n }\n }\n\n for (const path of paths) {\n if (!results.has(path)) {\n results.set(path, Err(unableToRetrieveProblem()));\n }\n }\n\n return results;\n });\n"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2024-2025 Dremio Corporation
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { HttpError } from "../../common/HttpError.js";
|
|
17
|
+
export const fromUsernamePassword = (username, password) => {
|
|
18
|
+
let token = null;
|
|
19
|
+
return {
|
|
20
|
+
get: async (config) => {
|
|
21
|
+
if (!token) {
|
|
22
|
+
const response = await (config.fetch || globalThis.fetch)(new URL("/apiv2/login", config.origin).toString(), {
|
|
23
|
+
body: JSON.stringify({ password, userName: username }),
|
|
24
|
+
headers: {
|
|
25
|
+
Accept: "application/json",
|
|
26
|
+
"Content-Type": "application/json",
|
|
27
|
+
},
|
|
28
|
+
method: "POST",
|
|
29
|
+
}).then(async (res) => {
|
|
30
|
+
if (!res.ok) {
|
|
31
|
+
throw await HttpError.fromResponse(res);
|
|
32
|
+
}
|
|
33
|
+
return res.json();
|
|
34
|
+
});
|
|
35
|
+
token = response.token;
|
|
36
|
+
}
|
|
37
|
+
return token;
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=fromUsernamePassword.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fromUsernamePassword.js","sourceRoot":"","sources":["../../../src/oss/credentials/fromUsernamePassword.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAgB,EAAE,QAAgB,EAAsB,EAAE;IAC7F,IAAI,KAAK,GAAkB,IAAI,CAAC;IAChC,OAAO;QACL,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACpB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CACvD,IAAI,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EACjD;oBACE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;oBACtD,OAAO,EAAE;wBACP,MAAM,EAAE,kBAAkB;wBAC1B,cAAc,EAAE,kBAAkB;qBACnC;oBACD,MAAM,EAAE,MAAM;iBACf,CACF,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBACnB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;wBACZ,MAAM,MAAM,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;oBAC1C,CAAC;oBACD,OAAO,GAAG,CAAC,IAAI,EAAgC,CAAC;gBAClD,CAAC,CAAC,CAAC;gBAEH,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YACzB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/*\n * Copyright (C) 2024-2025 Dremio Corporation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { CredentialProvider } from \"../../common/CredentialProvider.ts\";\nimport { HttpError } from \"../../common/HttpError.ts\";\n\nexport const fromUsernamePassword = (username: string, password: string): CredentialProvider => {\n let token: string | null = null;\n return {\n get: async (config) => {\n if (!token) {\n const response = await (config.fetch || globalThis.fetch)(\n new URL(\"/apiv2/login\", config.origin).toString(),\n {\n body: JSON.stringify({ password, userName: username }),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n method: \"POST\",\n },\n ).then(async (res) => {\n if (!res.ok) {\n throw await HttpError.fromResponse(res);\n }\n return res.json() as Promise<{ token: string }>;\n });\n\n token = response.token;\n }\n return token;\n },\n };\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./fromUsernamePassword.ts";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2024-2025 Dremio Corporation
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export * from "./fromUsernamePassword.js";
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/oss/credentials/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,2BAA2B,CAAC","sourcesContent":["/*\n * Copyright (C) 2024-2025 Dremio Corporation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from \"./fromUsernamePassword.ts\";\n"]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { createRequest } from "../common/createRequest.ts";
|
|
2
|
+
import type { Config } from "../common/Config.ts";
|
|
3
|
+
import { Resources } from "./resources.ts";
|
|
4
|
+
export declare const Dremio: (config: Config) => {
|
|
5
|
+
_request: import("../common/Config.ts").RequestFn;
|
|
6
|
+
_sonarResourceConfig: {
|
|
7
|
+
logger: {
|
|
8
|
+
debug: typeof console.debug;
|
|
9
|
+
error: typeof console.error;
|
|
10
|
+
info: typeof console.info;
|
|
11
|
+
warn: typeof console.warn;
|
|
12
|
+
} | undefined;
|
|
13
|
+
origin: string;
|
|
14
|
+
request: import("../common/Config.ts").RequestFn;
|
|
15
|
+
sonarV2Request: (path: string, init: RequestInit | undefined) => Promise<Response>;
|
|
16
|
+
sonarV3Request: (path: string, init: RequestInit | undefined) => Promise<Response>;
|
|
17
|
+
};
|
|
18
|
+
_sonarV2Request: (path: string, init: RequestInit | undefined) => Promise<Response>;
|
|
19
|
+
_sonarV3Request: (path: string, init: RequestInit | undefined) => Promise<Response>;
|
|
20
|
+
catalog: {
|
|
21
|
+
_catalogReferenceFromEntity: (entity: unknown) => import("./interfaces.ts").CatalogReference;
|
|
22
|
+
list: () => {
|
|
23
|
+
data(): AsyncGenerator<import("./interfaces.ts").FunctionCatalogReference | import("./interfaces.ts").HomeCatalogReference | import("./interfaces.ts").SourceCatalogReference | import("./interfaces.ts").SpaceCatalogReference, void, unknown>;
|
|
24
|
+
};
|
|
25
|
+
retrieve: (key: string) => Promise<import("ts-results-es").Result<import("./interfaces.ts").CatalogObject, import("../common/Problem.ts").Problem>>;
|
|
26
|
+
retrieveByPath: (key: string[]) => Promise<import("ts-results-es").Result<import("./interfaces.ts").CatalogObject, import("../common/Problem.ts").Problem>>;
|
|
27
|
+
};
|
|
28
|
+
jobs: {
|
|
29
|
+
create: (query: import("../common/Query.ts").Query) => Promise<import("ts-results-es").Err<unknown> | import("ts-results-es").Ok<string>>;
|
|
30
|
+
observe: (id: string) => import("rxjs").Observable<import("./jobs/Job.ts").JobResult>;
|
|
31
|
+
retrieve: (id: string, { signal }?: import("../common/Params.ts").SignalParam) => Promise<import("./jobs/Job.ts").JobResult>;
|
|
32
|
+
};
|
|
33
|
+
scripts: {
|
|
34
|
+
list(): {
|
|
35
|
+
data({ signal }?: import("../common/Params.ts").SignalParam): AsyncGenerator<import("./interfaces.ts").Script, void, unknown>;
|
|
36
|
+
};
|
|
37
|
+
retrieve: (id: string, { signal }?: import("../common/Params.ts").SignalParam) => Promise<import("ts-results-es").Err<unknown> | import("ts-results-es").Ok<import("./interfaces.ts").Script>>;
|
|
38
|
+
store: (properties: {
|
|
39
|
+
name: string;
|
|
40
|
+
query: import("../common/Query.ts").Query;
|
|
41
|
+
}) => Promise<import("ts-results-es").Err<unknown> | import("ts-results-es").Ok<import("./interfaces.ts").Script>>;
|
|
42
|
+
};
|
|
43
|
+
users: {
|
|
44
|
+
retrieveById: (id: string, { signal }?: {
|
|
45
|
+
signal?: AbortSignal;
|
|
46
|
+
}) => Promise<import("ts-results-es").Err<unknown> | import("ts-results-es").Ok<import("./interfaces.ts").User>>;
|
|
47
|
+
retrieveByName: (name: string, { signal }?: {
|
|
48
|
+
signal?: AbortSignal;
|
|
49
|
+
}) => Promise<import("ts-results-es").Err<unknown> | import("ts-results-es").Ok<import("./interfaces.ts").User>>;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
export * from "../common/sharedExports.ts";
|
|
53
|
+
export * from "./credentials/index.ts";
|
|
54
|
+
export * from "./interfaces.ts";
|
|
55
|
+
export { createRequest, Resources as _Resources };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2024-2025 Dremio Corporation
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { createRequest } from "../common/createRequest.js";
|
|
17
|
+
import { Resources } from "./resources.js";
|
|
18
|
+
const getSonarResourceConfig = (config) => {
|
|
19
|
+
const request = createRequest(config);
|
|
20
|
+
return {
|
|
21
|
+
logger: config.logger,
|
|
22
|
+
origin: config.origin,
|
|
23
|
+
request,
|
|
24
|
+
sonarV2Request: (path, init) => request(`/apiv2/${path}`, init),
|
|
25
|
+
sonarV3Request: (path, init) => request(`/api/v3/${path}`, init),
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export const Dremio = (config) => {
|
|
29
|
+
const sonarResourceConfig = getSonarResourceConfig(config);
|
|
30
|
+
return {
|
|
31
|
+
...Resources(sonarResourceConfig),
|
|
32
|
+
_request: sonarResourceConfig.request,
|
|
33
|
+
_sonarResourceConfig: sonarResourceConfig,
|
|
34
|
+
_sonarV2Request: sonarResourceConfig.sonarV2Request,
|
|
35
|
+
_sonarV3Request: sonarResourceConfig.sonarV3Request,
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
export * from "../common/sharedExports.js";
|
|
39
|
+
export * from "./credentials/index.js";
|
|
40
|
+
export * from "./interfaces.js";
|
|
41
|
+
export { createRequest, Resources as _Resources };
|
|
42
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/oss/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,sBAAsB,GAAG,CAAC,MAAc,EAAE,EAAE;IAChD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO;QACP,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,IAAI,CAAC;QAC/D,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,CAAC;KACR,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,EAAE;IACvC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC3D,OAAO;QACL,GAAG,SAAS,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE,mBAAmB,CAAC,OAAO;QACrC,oBAAoB,EAAE,mBAAmB;QACzC,eAAe,EAAE,mBAAmB,CAAC,cAAc;QACnD,eAAe,EAAE,mBAAmB,CAAC,cAAc;KACpD,CAAC;AACJ,CAAC,CAAC;AAEF,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,SAAS,IAAI,UAAU,EAAE,CAAC","sourcesContent":["/*\n * Copyright (C) 2024-2025 Dremio Corporation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createRequest } from \"../common/createRequest.ts\";\nimport type { Config, ResourceConfig, SonarV2Config, SonarV3Config } from \"../common/Config.ts\";\nimport { Resources } from \"./resources.ts\";\n\nconst getSonarResourceConfig = (config: Config) => {\n const request = createRequest(config);\n return {\n logger: config.logger,\n origin: config.origin,\n request,\n sonarV2Request: (path, init) => request(`/apiv2/${path}`, init),\n sonarV3Request: (path, init) => request(`/api/v3/${path}`, init),\n } satisfies ResourceConfig & SonarV2Config & SonarV3Config;\n};\n\nexport const Dremio = (config: Config) => {\n const sonarResourceConfig = getSonarResourceConfig(config);\n return {\n ...Resources(sonarResourceConfig),\n _request: sonarResourceConfig.request,\n _sonarResourceConfig: sonarResourceConfig,\n _sonarV2Request: sonarResourceConfig.sonarV2Request,\n _sonarV3Request: sonarResourceConfig.sonarV3Request,\n };\n};\n\nexport * from \"../common/sharedExports.ts\";\nexport * from \"./credentials/index.ts\";\nexport * from \"./interfaces.ts\";\nexport { createRequest, Resources as _Resources };\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Job } from "./jobs/Job.ts";
|
|
2
|
+
import type { Reflection } from "./reflections/Reflection.ts";
|
|
3
|
+
import type { Script } from "./scripts/Script.ts";
|
|
4
|
+
import type { User } from "./users/User.ts";
|
|
5
|
+
import type { BranchHeadVersionReference, BareCommitVersionReference, TagVersionReference, VersionReference } from "./catalog/VersionReference.ts";
|
|
6
|
+
export * from "./catalog/CatalogObjects/index.ts";
|
|
7
|
+
export * from "./catalog/CatalogReferences/index.ts";
|
|
8
|
+
export type { Job, Reflection, Script, User, VersionReference, BranchHeadVersionReference, BareCommitVersionReference, TagVersionReference, };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2024-2025 Dremio Corporation
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export * from "./catalog/CatalogObjects/index.js";
|
|
17
|
+
export * from "./catalog/CatalogReferences/index.js";
|
|
18
|
+
//# sourceMappingURL=interfaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/oss/interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAaH,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC","sourcesContent":["/*\n * Copyright (C) 2024-2025 Dremio Corporation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Job } from \"./jobs/Job.ts\";\nimport type { Reflection } from \"./reflections/Reflection.ts\";\nimport type { Script } from \"./scripts/Script.ts\";\nimport type { User } from \"./users/User.ts\";\nimport type {\n BranchHeadVersionReference,\n BareCommitVersionReference,\n TagVersionReference,\n VersionReference,\n} from \"./catalog/VersionReference.ts\";\n\nexport * from \"./catalog/CatalogObjects/index.ts\";\nexport * from \"./catalog/CatalogReferences/index.ts\";\nexport type {\n Job,\n Reflection,\n Script,\n User,\n VersionReference,\n BranchHeadVersionReference,\n BareCommitVersionReference,\n TagVersionReference,\n};\n"]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { SonarV3Config } from "../../common/Config.ts";
|
|
2
|
+
import type { Problem } from "../../common/Problem.ts";
|
|
3
|
+
import { Err, Ok, Result } from "ts-results-es";
|
|
4
|
+
import { type Observable } from "rxjs";
|
|
5
|
+
export declare class Job {
|
|
6
|
+
#private;
|
|
7
|
+
readonly acceleration: JobProperties["acceleration"];
|
|
8
|
+
readonly cancellationReason: JobProperties["cancellationReason"];
|
|
9
|
+
readonly endedAt: JobProperties["endedAt"];
|
|
10
|
+
readonly id: JobProperties["id"];
|
|
11
|
+
readonly problem: JobProperties["problem"];
|
|
12
|
+
readonly queryType: JobProperties["queryType"];
|
|
13
|
+
readonly resourceSchedulingEndedAt: JobProperties["resourceSchedulingEndedAt"];
|
|
14
|
+
readonly resourceSchedulingStartedAt: JobProperties["resourceSchedulingStartedAt"];
|
|
15
|
+
readonly rowCount: JobProperties["rowCount"];
|
|
16
|
+
readonly startedAt: JobProperties["startedAt"];
|
|
17
|
+
readonly state: JobProperties["state"];
|
|
18
|
+
readonly observer: Observable<Job>;
|
|
19
|
+
constructor(properties: JobProperties, config: SonarV3Config, observe: (id: string) => Observable<JobResult>);
|
|
20
|
+
get settled(): boolean;
|
|
21
|
+
get results(): {
|
|
22
|
+
jsonBatches: <T extends Record<string, unknown> = Record<string, unknown>>() => AsyncGenerator<{
|
|
23
|
+
readonly columns: Record<Extract<keyof T, string>, unknown[] | Float64Array<ArrayBuffer> | Float32Array<ArrayBuffer> | Int32Array<ArrayBuffer>>;
|
|
24
|
+
readonly rows: T[];
|
|
25
|
+
readonly schema: {
|
|
26
|
+
fields: import("./utils/JobResultsResponse.ts").JobResultsSchema<Extract<keyof T, string>>;
|
|
27
|
+
};
|
|
28
|
+
}, void, unknown>;
|
|
29
|
+
recordBatches: <T extends Record<string, unknown> = Record<string, unknown>>() => AsyncGenerator<import("apache-arrow").Table<Record<Extract<keyof T, string>, unknown[] | Float64Array<ArrayBuffer> | Float32Array<ArrayBuffer> | Int32Array<ArrayBuffer>> extends infer T_1 extends Record<string | number | symbol, readonly unknown[] | import("apache-arrow/interfaces").TypedArray | import("apache-arrow/interfaces").BigIntArray> ? { [P in keyof T_1]: import("apache-arrow/interfaces").ArrayDataType<Record<Extract<keyof T, string>, unknown[] | Float64Array<ArrayBuffer> | Float32Array<ArrayBuffer> | Int32Array<ArrayBuffer>>[P]>; } : never>, void, unknown>;
|
|
30
|
+
};
|
|
31
|
+
cancel(): Promise<Err<any> | Ok<undefined>>;
|
|
32
|
+
}
|
|
33
|
+
export declare const jobEntityToProperties: (id: string, entity: {
|
|
34
|
+
jobState: "NOT_SUBMITTED" | "STARTING" | "RUNNING" | "COMPLETED" | "CANCELED" | "FAILED" | "CANCELLATION_REQUESTED" | "PLANNING" | "PENDING" | "METADATA_RETRIEVAL" | "QUEUED" | "ENGINE_START" | "EXECUTION_PLANNING" | "INVALID_STATE";
|
|
35
|
+
rowCount: number | null;
|
|
36
|
+
errorMessage: string;
|
|
37
|
+
startedAt: string | null;
|
|
38
|
+
endedAt: string | null;
|
|
39
|
+
acceleration: {
|
|
40
|
+
reflectionRelationships: {
|
|
41
|
+
datasetId: string;
|
|
42
|
+
reflectionId: string;
|
|
43
|
+
relationship: string;
|
|
44
|
+
}[];
|
|
45
|
+
};
|
|
46
|
+
queryType: "UI_RUN" | "UI_PREVIEW" | "UI_INTERNAL_PREVIEW" | "UI_INTERNAL_RUN" | "UI_EXPORT" | "ODBC" | "JDBC" | "REST" | "ACCELERATOR_CREATE" | "ACCELERATOR_DROP" | "UNKNOWN" | "PREPARE_INTERNAL" | "ACCELERATOR_EXPLAIN" | "UI_INITIAL_PREVIEW";
|
|
47
|
+
resourceSchedulingStartedAt: string | null;
|
|
48
|
+
resourceSchedulingEndedAt: string | null;
|
|
49
|
+
cancellationReason: string | null;
|
|
50
|
+
}) => {
|
|
51
|
+
readonly acceleration: {
|
|
52
|
+
reflectionRelationships: {
|
|
53
|
+
datasetId: string;
|
|
54
|
+
reflectionId: string;
|
|
55
|
+
relationship: string;
|
|
56
|
+
}[];
|
|
57
|
+
};
|
|
58
|
+
readonly cancellationReason: string | null;
|
|
59
|
+
readonly endedAt: Date | null;
|
|
60
|
+
readonly id: string;
|
|
61
|
+
readonly problem: Problem | null;
|
|
62
|
+
readonly queryType: "UI_RUN" | "UI_PREVIEW" | "UI_INTERNAL_PREVIEW" | "UI_INTERNAL_RUN" | "UI_EXPORT" | "ODBC" | "JDBC" | "REST" | "ACCELERATOR_CREATE" | "ACCELERATOR_DROP" | "UNKNOWN" | "PREPARE_INTERNAL" | "ACCELERATOR_EXPLAIN" | "UI_INITIAL_PREVIEW";
|
|
63
|
+
readonly resourceSchedulingEndedAt: Date | null;
|
|
64
|
+
readonly resourceSchedulingStartedAt: Date | null;
|
|
65
|
+
readonly rowCount: number | null;
|
|
66
|
+
readonly startedAt: Date | null;
|
|
67
|
+
readonly state: "NOT_SUBMITTED" | "STARTING" | "RUNNING" | "COMPLETED" | "CANCELED" | "FAILED" | "CANCELLATION_REQUESTED" | "PLANNING" | "PENDING" | "METADATA_RETRIEVAL" | "QUEUED" | "ENGINE_START" | "EXECUTION_PLANNING" | "INVALID_STATE";
|
|
68
|
+
};
|
|
69
|
+
type JobProperties = ReturnType<typeof jobEntityToProperties>;
|
|
70
|
+
export type JobResult = Result<Job, unknown>;
|
|
71
|
+
export {};
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2024-2025 Dremio Corporation
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Err, Ok, Result } from "ts-results-es";
|
|
17
|
+
import { tableFromArrays } from "apache-arrow";
|
|
18
|
+
import { lastValueFrom, map, of, switchMap } from "rxjs";
|
|
19
|
+
import { mapRowsToColumns } from "./utils/mapRowsToColumns.js";
|
|
20
|
+
import { mapRowData } from "./utils/mapRowData.js";
|
|
21
|
+
export class Job {
|
|
22
|
+
acceleration;
|
|
23
|
+
cancellationReason;
|
|
24
|
+
endedAt;
|
|
25
|
+
id;
|
|
26
|
+
problem;
|
|
27
|
+
queryType;
|
|
28
|
+
resourceSchedulingEndedAt;
|
|
29
|
+
resourceSchedulingStartedAt;
|
|
30
|
+
rowCount;
|
|
31
|
+
startedAt;
|
|
32
|
+
state;
|
|
33
|
+
observer;
|
|
34
|
+
#config;
|
|
35
|
+
constructor(properties, config, observe) {
|
|
36
|
+
this.acceleration = properties.acceleration;
|
|
37
|
+
this.cancellationReason = properties.cancellationReason;
|
|
38
|
+
this.endedAt = properties.endedAt;
|
|
39
|
+
this.id = properties.id;
|
|
40
|
+
this.problem = properties.problem;
|
|
41
|
+
this.queryType = properties.queryType;
|
|
42
|
+
this.resourceSchedulingEndedAt = properties.resourceSchedulingEndedAt;
|
|
43
|
+
this.resourceSchedulingStartedAt = properties.resourceSchedulingStartedAt;
|
|
44
|
+
this.rowCount = properties.rowCount;
|
|
45
|
+
this.startedAt = properties.startedAt;
|
|
46
|
+
this.state = properties.state;
|
|
47
|
+
this.#config = config;
|
|
48
|
+
this.observer = of(this).pipe(switchMap((job) => {
|
|
49
|
+
if (!job.settled) {
|
|
50
|
+
return observe(this.id).pipe(map((result) => {
|
|
51
|
+
if (result.isErr()) {
|
|
52
|
+
throw result.error;
|
|
53
|
+
}
|
|
54
|
+
return result.value;
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
return of(job);
|
|
59
|
+
}
|
|
60
|
+
}));
|
|
61
|
+
}
|
|
62
|
+
get settled() {
|
|
63
|
+
return (this.state === "COMPLETED" ||
|
|
64
|
+
this.state === "FAILED" ||
|
|
65
|
+
this.state === "INVALID_STATE" ||
|
|
66
|
+
this.state === "CANCELED");
|
|
67
|
+
}
|
|
68
|
+
get results() {
|
|
69
|
+
return {
|
|
70
|
+
jsonBatches: this.#jsonBatches.bind(this),
|
|
71
|
+
recordBatches: this.#recordBatches.bind(this),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
async *#jsonBatches() {
|
|
75
|
+
// Wait for job to enter a settled state before attempting to fetch batches
|
|
76
|
+
if (!this.settled) {
|
|
77
|
+
await lastValueFrom(this.observer);
|
|
78
|
+
}
|
|
79
|
+
const batch_size = 500;
|
|
80
|
+
let hasMore = true;
|
|
81
|
+
let offset = 0;
|
|
82
|
+
while (hasMore) {
|
|
83
|
+
const batch = await this.#config
|
|
84
|
+
.sonarV3Request(`job/${this.id}/results?offset=${offset}&limit=${batch_size}`)
|
|
85
|
+
.then((res) => res.json());
|
|
86
|
+
offset += batch.rows.length;
|
|
87
|
+
hasMore = batch.rows.length === batch_size;
|
|
88
|
+
if (batch.rows.length) {
|
|
89
|
+
const schema = { fields: batch.schema };
|
|
90
|
+
mapRowData(batch.rows, batch.schema);
|
|
91
|
+
yield {
|
|
92
|
+
get columns() {
|
|
93
|
+
return mapRowsToColumns(batch);
|
|
94
|
+
},
|
|
95
|
+
rows: batch.rows,
|
|
96
|
+
schema,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
async *#recordBatches() {
|
|
102
|
+
for await (const batch of this.#jsonBatches()) {
|
|
103
|
+
yield tableFromArrays(batch.columns);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
async cancel() {
|
|
107
|
+
return this.#config
|
|
108
|
+
.sonarV3Request(`job/${this.id}/cancel`, {
|
|
109
|
+
keepalive: true,
|
|
110
|
+
method: "POST",
|
|
111
|
+
})
|
|
112
|
+
.then(() => Ok(undefined))
|
|
113
|
+
.catch((e) => Err(e));
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
export const jobEntityToProperties = (id, entity) => ({
|
|
117
|
+
acceleration: entity.acceleration,
|
|
118
|
+
cancellationReason: entity.cancellationReason,
|
|
119
|
+
endedAt: entity.endedAt ? new Date(entity.endedAt) : null,
|
|
120
|
+
id,
|
|
121
|
+
problem: null,
|
|
122
|
+
queryType: entity.queryType,
|
|
123
|
+
resourceSchedulingEndedAt: entity.resourceSchedulingEndedAt
|
|
124
|
+
? new Date(entity.resourceSchedulingEndedAt)
|
|
125
|
+
: null,
|
|
126
|
+
resourceSchedulingStartedAt: entity.resourceSchedulingStartedAt
|
|
127
|
+
? new Date(entity.resourceSchedulingStartedAt)
|
|
128
|
+
: null,
|
|
129
|
+
rowCount: entity.rowCount,
|
|
130
|
+
startedAt: entity.startedAt ? new Date(entity.startedAt) : null,
|
|
131
|
+
state: entity.jobState,
|
|
132
|
+
});
|
|
133
|
+
//# sourceMappingURL=Job.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Job.js","sourceRoot":"","sources":["../../../src/oss/jobs/Job.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2024-2025 Dremio Corporation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { SonarV3Config } from \"../../common/Config.ts\";\nimport type { Problem } from \"../../common/Problem.ts\";\nimport { Err, Ok, Result } from \"ts-results-es\";\nimport { tableFromArrays } from \"apache-arrow\";\nimport { lastValueFrom, map, of, switchMap, type Observable } from \"rxjs\";\nimport type { JobResultsResponse } from \"./utils/JobResultsResponse.ts\";\nimport { mapRowsToColumns } from \"./utils/mapRowsToColumns.ts\";\nimport { mapRowData } from \"./utils/mapRowData.ts\";\n\nexport class Job {\n readonly acceleration: JobProperties[\"acceleration\"];\n readonly cancellationReason: JobProperties[\"cancellationReason\"];\n readonly endedAt: JobProperties[\"endedAt\"];\n readonly id: JobProperties[\"id\"];\n readonly problem: JobProperties[\"problem\"];\n readonly queryType: JobProperties[\"queryType\"];\n readonly resourceSchedulingEndedAt: JobProperties[\"resourceSchedulingEndedAt\"];\n readonly resourceSchedulingStartedAt: JobProperties[\"resourceSchedulingStartedAt\"];\n readonly rowCount: JobProperties[\"rowCount\"];\n readonly startedAt: JobProperties[\"startedAt\"];\n readonly state: JobProperties[\"state\"];\n\n public readonly observer: Observable<Job>;\n #config: SonarV3Config;\n\n constructor(\n properties: JobProperties,\n config: SonarV3Config,\n observe: (id: string) => Observable<JobResult>,\n ) {\n this.acceleration = properties.acceleration;\n this.cancellationReason = properties.cancellationReason;\n this.endedAt = properties.endedAt;\n this.id = properties.id;\n this.problem = properties.problem;\n this.queryType = properties.queryType;\n this.resourceSchedulingEndedAt = properties.resourceSchedulingEndedAt;\n this.resourceSchedulingStartedAt = properties.resourceSchedulingStartedAt;\n this.rowCount = properties.rowCount;\n this.startedAt = properties.startedAt;\n this.state = properties.state;\n this.#config = config;\n this.observer = of(this).pipe(\n switchMap((job) => {\n if (!job.settled) {\n return observe(this.id).pipe(\n map((result) => {\n if (result.isErr()) {\n throw result.error;\n }\n return result.value;\n }),\n );\n } else {\n return of(job);\n }\n }),\n );\n }\n\n get settled() {\n return (\n this.state === \"COMPLETED\" ||\n this.state === \"FAILED\" ||\n this.state === \"INVALID_STATE\" ||\n this.state === \"CANCELED\"\n );\n }\n\n get results() {\n return {\n jsonBatches: this.#jsonBatches.bind(this),\n recordBatches: this.#recordBatches.bind(this),\n };\n }\n\n async *#jsonBatches<T extends Record<string, unknown> = Record<string, unknown>>() {\n // Wait for job to enter a settled state before attempting to fetch batches\n if (!this.settled) {\n await lastValueFrom(this.observer);\n }\n\n const batch_size = 500;\n let hasMore = true;\n let offset = 0;\n while (hasMore) {\n const batch = await this.#config\n .sonarV3Request(`job/${this.id}/results?offset=${offset}&limit=${batch_size}`)\n .then((res) => res.json() as Promise<JobResultsResponse<T>>);\n\n offset += batch.rows.length;\n hasMore = batch.rows.length === batch_size;\n\n if (batch.rows.length) {\n const schema = { fields: batch.schema };\n mapRowData(batch.rows, batch.schema);\n yield {\n get columns() {\n return mapRowsToColumns(batch);\n },\n rows: batch.rows,\n schema,\n } as const;\n }\n }\n }\n\n async *#recordBatches<T extends Record<string, unknown> = Record<string, unknown>>() {\n for await (const batch of this.#jsonBatches<T>()) {\n yield tableFromArrays(batch.columns);\n }\n }\n\n async cancel() {\n return this.#config\n .sonarV3Request(`job/${this.id}/cancel`, {\n keepalive: true,\n method: \"POST\",\n })\n .then(() => Ok(undefined))\n .catch((e) => Err(e));\n }\n}\n\nexport const jobEntityToProperties = (\n id: string,\n entity: {\n jobState:\n | \"NOT_SUBMITTED\"\n | \"STARTING\"\n | \"RUNNING\"\n | \"COMPLETED\"\n | \"CANCELED\"\n | \"FAILED\"\n | \"CANCELLATION_REQUESTED\"\n | \"PLANNING\"\n | \"PENDING\"\n | \"METADATA_RETRIEVAL\"\n | \"QUEUED\"\n | \"ENGINE_START\"\n | \"EXECUTION_PLANNING\"\n | \"INVALID_STATE\";\n rowCount: number | null;\n errorMessage: string;\n startedAt: string | null;\n endedAt: string | null;\n acceleration: {\n reflectionRelationships: {\n datasetId: string;\n reflectionId: string;\n relationship: string;\n }[];\n };\n queryType:\n | \"UI_RUN\"\n | \"UI_PREVIEW\"\n | \"UI_INTERNAL_PREVIEW\"\n | \"UI_INTERNAL_RUN\"\n | \"UI_EXPORT\"\n | \"ODBC\"\n | \"JDBC\"\n | \"REST\"\n | \"ACCELERATOR_CREATE\"\n | \"ACCELERATOR_DROP\"\n | \"UNKNOWN\"\n | \"PREPARE_INTERNAL\"\n | \"ACCELERATOR_EXPLAIN\"\n | \"UI_INITIAL_PREVIEW\";\n resourceSchedulingStartedAt: string | null;\n resourceSchedulingEndedAt: string | null;\n cancellationReason: string | null;\n },\n) =>\n ({\n acceleration: entity.acceleration,\n cancellationReason: entity.cancellationReason,\n endedAt: entity.endedAt ? new Date(entity.endedAt) : null,\n id,\n problem: null as Problem | null,\n queryType: entity.queryType,\n resourceSchedulingEndedAt: entity.resourceSchedulingEndedAt\n ? new Date(entity.resourceSchedulingEndedAt)\n : null,\n resourceSchedulingStartedAt: entity.resourceSchedulingStartedAt\n ? new Date(entity.resourceSchedulingStartedAt)\n : null,\n rowCount: entity.rowCount,\n startedAt: entity.startedAt ? new Date(entity.startedAt) : null,\n state: entity.jobState,\n }) as const;\n\ntype JobProperties = ReturnType<typeof jobEntityToProperties>;\n\nexport type JobResult = Result<Job, unknown>;\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SonarV3Config } from "../../common/Config.ts";
|
|
2
|
+
import { type JobResult } from "./Job.ts";
|
|
3
|
+
import { Query } from "../../common/Query.ts";
|
|
4
|
+
import { Err, Ok } from "ts-results-es";
|
|
5
|
+
import type { SignalParam } from "../../common/Params.ts";
|
|
6
|
+
export declare const JobsResource: (config: SonarV3Config) => {
|
|
7
|
+
create: (query: Query) => Promise<Err<unknown> | Ok<string>>;
|
|
8
|
+
observe: (id: string) => import("rxjs").Observable<JobResult>;
|
|
9
|
+
retrieve: (id: string, { signal }?: SignalParam) => Promise<JobResult>;
|
|
10
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2024-2025 Dremio Corporation
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Job, jobEntityToProperties } from "./Job.js";
|
|
17
|
+
import { Query } from "../../common/Query.js";
|
|
18
|
+
import { Err, Ok } from "ts-results-es";
|
|
19
|
+
import { concatMap, shareReplay, takeWhile, timer } from "rxjs";
|
|
20
|
+
import { fromAbortable } from "../../common/fromAbortable.js";
|
|
21
|
+
export const JobsResource = (config) => {
|
|
22
|
+
const observe = (id) =>
|
|
23
|
+
/**
|
|
24
|
+
* Check every 1000ms for job status changes. 1000ms may seem too frequent,
|
|
25
|
+
* but it helps keep the client feeling snappy, especially for jobs that complete quickly.
|
|
26
|
+
*/
|
|
27
|
+
timer(0, 1000).pipe(
|
|
28
|
+
/**
|
|
29
|
+
* Use `concatMap` instead of `switchMap` to avoid a situation where the call takes longer than
|
|
30
|
+
* 1000ms (possibly due to network conditions or API slowdowns) which would cause switchMap to
|
|
31
|
+
* constantly cancel unfinished requests (in which case, no requests would ever complete)
|
|
32
|
+
*/
|
|
33
|
+
concatMap(() => fromAbortable(({ signal }) => retrieve(id, { signal }))),
|
|
34
|
+
/**
|
|
35
|
+
* Continue polling until the job has reached a settled state
|
|
36
|
+
*/
|
|
37
|
+
takeWhile((jobResult) => jobResult.isOk() && !jobResult.value.settled, true),
|
|
38
|
+
/**
|
|
39
|
+
* Reuse the same polling for multiple subscribers, buffering only the latest result.
|
|
40
|
+
* Make sure to unsubscribe from the source to stop polling when there are no subscribers (refCount: true)
|
|
41
|
+
*/
|
|
42
|
+
shareReplay({
|
|
43
|
+
bufferSize: 1,
|
|
44
|
+
refCount: true,
|
|
45
|
+
}));
|
|
46
|
+
const retrieve = (id, { signal } = {}) => config
|
|
47
|
+
.sonarV3Request(`job/${id}`, { signal })
|
|
48
|
+
.then((res) => res.json())
|
|
49
|
+
.then((properties) => Ok(new Job(jobEntityToProperties(id, properties), config, observe)))
|
|
50
|
+
.catch((e) => Err(e));
|
|
51
|
+
return {
|
|
52
|
+
create: (query) => {
|
|
53
|
+
return config
|
|
54
|
+
.sonarV3Request(`sql`, {
|
|
55
|
+
body: JSON.stringify({
|
|
56
|
+
context: query.context,
|
|
57
|
+
sql: query.sql,
|
|
58
|
+
}),
|
|
59
|
+
headers: {
|
|
60
|
+
Accept: "application/json",
|
|
61
|
+
"Content-Type": "application/json",
|
|
62
|
+
},
|
|
63
|
+
keepalive: true,
|
|
64
|
+
method: "POST",
|
|
65
|
+
})
|
|
66
|
+
.then((res) => res.json())
|
|
67
|
+
.then((response) => Ok(response.id))
|
|
68
|
+
.catch((e) => Err(e));
|
|
69
|
+
},
|
|
70
|
+
observe,
|
|
71
|
+
retrieve,
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=JobsResource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JobsResource.js","sourceRoot":"","sources":["../../../src/oss/jobs/JobsResource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAkB,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAqB,EAAE,EAAE;IACpD,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,EAAE;IAC7B;;;OAGG;IACH,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI;IACjB;;;;OAIG;IACH,SAAS,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACxE;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;IAC5E;;;OAGG;IACH,WAAW,CAAC;QACV,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,IAAI;KACf,CAAC,CACH,CAAC;IACJ,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,EAAE,MAAM,KAAkB,EAAE,EAAsB,EAAE,CAChF,MAAM;SACH,cAAc,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;SACvC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACzB,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,qBAAqB,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;SACzF,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO;QACL,MAAM,EAAE,CAAC,KAAY,EAAE,EAAE;YACvB,OAAO,MAAM;iBACV,cAAc,CAAC,KAAK,EAAE;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,GAAG,EAAE,KAAK,CAAC,GAAG;iBACf,CAAC;gBACF,OAAO,EAAE;oBACP,MAAM,EAAE,kBAAkB;oBAC1B,cAAc,EAAE,kBAAkB;iBACnC;gBACD,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,MAAM;aACf,CAAC;iBACD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAA6B,CAAC;iBACpD,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;iBACnC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,OAAO;QACP,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/*\n * Copyright (C) 2024-2025 Dremio Corporation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { SonarV3Config } from \"../../common/Config.ts\";\nimport { Job, jobEntityToProperties, type JobResult } from \"./Job.ts\";\nimport { Query } from \"../../common/Query.ts\";\nimport { Err, Ok } from \"ts-results-es\";\nimport type { SignalParam } from \"../../common/Params.ts\";\nimport { concatMap, shareReplay, takeWhile, timer } from \"rxjs\";\nimport { fromAbortable } from \"../../common/fromAbortable.ts\";\n\nexport const JobsResource = (config: SonarV3Config) => {\n const observe = (id: string) =>\n /**\n * Check every 1000ms for job status changes. 1000ms may seem too frequent,\n * but it helps keep the client feeling snappy, especially for jobs that complete quickly.\n */\n timer(0, 1000).pipe(\n /**\n * Use `concatMap` instead of `switchMap` to avoid a situation where the call takes longer than\n * 1000ms (possibly due to network conditions or API slowdowns) which would cause switchMap to\n * constantly cancel unfinished requests (in which case, no requests would ever complete)\n */\n concatMap(() => fromAbortable(({ signal }) => retrieve(id, { signal }))),\n /**\n * Continue polling until the job has reached a settled state\n */\n takeWhile((jobResult) => jobResult.isOk() && !jobResult.value.settled, true),\n /**\n * Reuse the same polling for multiple subscribers, buffering only the latest result.\n * Make sure to unsubscribe from the source to stop polling when there are no subscribers (refCount: true)\n */\n shareReplay({\n bufferSize: 1,\n refCount: true,\n }),\n );\n const retrieve = (id: string, { signal }: SignalParam = {}): Promise<JobResult> =>\n config\n .sonarV3Request(`job/${id}`, { signal })\n .then((res) => res.json())\n .then((properties) => Ok(new Job(jobEntityToProperties(id, properties), config, observe)))\n .catch((e: unknown) => Err(e));\n return {\n create: (query: Query) => {\n return config\n .sonarV3Request(`sql`, {\n body: JSON.stringify({\n context: query.context,\n sql: query.sql,\n }),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n keepalive: true,\n method: \"POST\",\n })\n .then((res) => res.json() as Promise<{ id: string }>)\n .then((response) => Ok(response.id))\n .catch((e: unknown) => Err(e));\n },\n observe,\n retrieve,\n };\n};\n"]}
|