mammoth-cli 2.2.71__tar.gz → 2.2.73__tar.gz

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.
Files changed (277) hide show
  1. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/PKG-INFO +1 -1
  2. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/__init__.py +1 -1
  3. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +9 -0
  4. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +1 -0
  5. mammoth_cli-2.2.73/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/rest-api-import.md +91 -0
  6. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/scheduling.md +2 -1
  7. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/auth.py +3 -7
  8. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/connector.py +1 -1
  9. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/help_summaries.json +1 -1
  10. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/schema.py +7 -4
  11. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/context/oauth.py +9 -43
  12. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/errors/envelope.py +0 -1
  13. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/pyproject.toml +1 -1
  14. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/.gitignore +0 -0
  15. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/LICENSE +0 -0
  16. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/README.md +0 -0
  17. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/__main__.py +0 -0
  18. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/app.py +0 -0
  19. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +0 -0
  20. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/about-mammoth.md +0 -0
  21. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +0 -0
  22. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities-misc.md +0 -0
  23. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities.md +0 -0
  24. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +0 -0
  25. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
  26. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
  27. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -0
  28. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +0 -0
  29. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
  30. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
  31. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
  32. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +0 -0
  33. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
  34. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
  35. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/calc.md +0 -0
  36. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
  37. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
  38. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
  39. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
  40. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +0 -0
  41. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
  42. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-qa.md +0 -0
  43. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-style.md +0 -0
  44. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-template.md +0 -0
  45. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
  46. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
  47. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +0 -0
  48. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
  49. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
  50. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
  51. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +0 -0
  52. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
  53. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/link.md +0 -0
  54. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/log.md +0 -0
  55. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
  56. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
  57. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +0 -0
  58. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
  59. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/resolve.md +0 -0
  60. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
  61. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
  62. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
  63. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
  64. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
  65. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
  66. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/token.md +0 -0
  67. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
  68. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
  69. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +0 -0
  70. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
  71. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view-transform.md +0 -0
  72. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +0 -0
  73. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
  74. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
  75. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
  76. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +0 -0
  77. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
  78. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +0 -0
  79. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
  80. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
  81. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
  82. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/build-an-agent.md +0 -0
  83. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
  84. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/database-import.md +0 -0
  85. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/end-to-end.md +0 -0
  86. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +0 -0
  87. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/file-import.md +0 -0
  88. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/need-action.md +0 -0
  89. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
  90. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +0 -0
  91. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
  92. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +0 -0
  93. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/report-checklist.md +0 -0
  94. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
  95. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
  96. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +0 -0
  97. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/__init__.py +0 -0
  98. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/_lazy.py +0 -0
  99. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/activity.py +0 -0
  100. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/addon.py +0 -0
  101. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/agent.py +0 -0
  102. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/ai.py +0 -0
  103. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/annotation.py +0 -0
  104. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/automation.py +0 -0
  105. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/batch.py +0 -0
  106. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/billing.py +0 -0
  107. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/browse.py +0 -0
  108. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/calc.py +0 -0
  109. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/capability.py +0 -0
  110. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/client_app.py +0 -0
  111. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/completion.py +0 -0
  112. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/config.py +0 -0
  113. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/context.py +0 -0
  114. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/dashboard.py +0 -0
  115. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/data_app.py +0 -0
  116. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/dataset.py +0 -0
  117. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/doctor.py +0 -0
  118. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/external_key.py +0 -0
  119. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/file.py +0 -0
  120. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/folder.py +0 -0
  121. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/job.py +0 -0
  122. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/link.py +0 -0
  123. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/notification.py +0 -0
  124. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/parameter.py +0 -0
  125. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/project.py +0 -0
  126. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/registry.py +0 -0
  127. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/report.py +0 -0
  128. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/resolve.py +0 -0
  129. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/schedule.py +0 -0
  130. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/skill.py +0 -0
  131. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/snippet.py +0 -0
  132. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/support.py +0 -0
  133. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/template.py +0 -0
  134. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/trash.py +0 -0
  135. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/upgrade.py +0 -0
  136. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/user.py +0 -0
  137. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/view.py +0 -0
  138. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/view_ops.py +0 -0
  139. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/view_profile.py +0 -0
  140. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/webhook.py +0 -0
  141. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/workflow.py +0 -0
  142. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/workspace.py +0 -0
  143. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/context/__init__.py +0 -0
  144. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/context/credentials.py +0 -0
  145. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/context/endpoint.py +0 -0
  146. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/context/keyring_backend.py +0 -0
  147. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/context/profiles.py +0 -0
  148. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/context/resolver.py +0 -0
  149. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/contracts/__init__.py +0 -0
  150. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/contracts/auth.py +0 -0
  151. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/embed.py +0 -0
  152. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/errors/__init__.py +0 -0
  153. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/manifest/__init__.py +0 -0
  154. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/manifest/loader.py +0 -0
  155. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/messages/__init__.py +0 -0
  156. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/output/__init__.py +0 -0
  157. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/output/envelope.py +0 -0
  158. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/output/normalize.py +0 -0
  159. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/output/policy.py +0 -0
  160. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/output/progress.py +0 -0
  161. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/output/render.py +0 -0
  162. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/py.typed +0 -0
  163. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/__init__.py +0 -0
  164. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/confirm.py +0 -0
  165. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/dataset_health.py +0 -0
  166. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/dryrun.py +0 -0
  167. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/dryrun_targets.py +0 -0
  168. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/embedded.py +0 -0
  169. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/executor.py +0 -0
  170. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/input_loader.py +0 -0
  171. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/intent_only.py +0 -0
  172. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/invocation.py +0 -0
  173. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/locked_files.py +0 -0
  174. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/new_data.py +0 -0
  175. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/opens.py +0 -0
  176. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/options.py +0 -0
  177. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/parents.py +0 -0
  178. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/runlog.py +0 -0
  179. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/session.py +0 -0
  180. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/state.py +0 -0
  181. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/strict.py +0 -0
  182. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/updates.py +0 -0
  183. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/validate.py +0 -0
  184. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/verify.py +0 -0
  185. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/__init__.py +0 -0
  186. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/append_blank_columns.py +0 -0
  187. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/argspec.py +0 -0
  188. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/board_values.py +0 -0
  189. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/coerce.py +0 -0
  190. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/command_contract.py +0 -0
  191. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/conditional_format.py +0 -0
  192. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/conditions.py +0 -0
  193. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/dashboard_filters.py +0 -0
  194. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/dashboard_pages.py +0 -0
  195. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/dashboard_review.py +0 -0
  196. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/data_profile.py +0 -0
  197. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/data_quality.py +0 -0
  198. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/dispatch.py +0 -0
  199. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/explore_cards.py +0 -0
  200. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/factory.py +0 -0
  201. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/folder_ids.py +0 -0
  202. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/input_fields.py +0 -0
  203. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/job_outcome.py +0 -0
  204. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/listing.py +0 -0
  205. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/local_time.py +0 -0
  206. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/mapping.py +0 -0
  207. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/openapi_types.py +0 -0
  208. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/positionals.py +0 -0
  209. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/protocol.py +0 -0
  210. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/read_queries.py +0 -0
  211. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/sdk_service.py +0 -0
  212. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/sql_check.py +0 -0
  213. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/stored_stats.py +0 -0
  214. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/testing.py +0 -0
  215. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/text_dates.py +0 -0
  216. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/type_system.py +0 -0
  217. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/view_analysis.py +0 -0
  218. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/view_variants.py +0 -0
  219. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/write_impact.py +0 -0
  220. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/skills/__init__.py +0 -0
  221. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/skills/installer.py +0 -0
  222. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/skills/steering.py +0 -0
  223. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/testing.py +0 -0
  224. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/activity.yaml +0 -0
  225. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/addon.yaml +0 -0
  226. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/agent.yaml +0 -0
  227. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/ai.yaml +0 -0
  228. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/annotation.yaml +0 -0
  229. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/auth.yaml +0 -0
  230. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/automation.yaml +0 -0
  231. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/batch.yaml +0 -0
  232. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/billing.yaml +0 -0
  233. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/browse.yaml +0 -0
  234. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/calc.yaml +0 -0
  235. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/capability.yaml +0 -0
  236. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/client-app.yaml +0 -0
  237. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/completion.yaml +0 -0
  238. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/config.yaml +0 -0
  239. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/connector.yaml +0 -0
  240. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/context.yaml +0 -0
  241. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/dashboard.yaml +0 -0
  242. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/data-app.yaml +0 -0
  243. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/dataset.yaml +0 -0
  244. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/doctor.yaml +0 -0
  245. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/external-key.yaml +0 -0
  246. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/file.yaml +0 -0
  247. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/folder.yaml +0 -0
  248. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/job.yaml +0 -0
  249. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/link.yaml +0 -0
  250. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/log.yaml +0 -0
  251. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/notification.yaml +0 -0
  252. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/parameter.yaml +0 -0
  253. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/project.yaml +0 -0
  254. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/report.yaml +0 -0
  255. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/resolve.yaml +0 -0
  256. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/schedule.yaml +0 -0
  257. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/schema.yaml +0 -0
  258. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/skill.yaml +0 -0
  259. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/snippet.yaml +0 -0
  260. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/support.yaml +0 -0
  261. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/template.yaml +0 -0
  262. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/token.yaml +0 -0
  263. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/trash.yaml +0 -0
  264. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/upgrade.yaml +0 -0
  265. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/user.yaml +0 -0
  266. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/version.yaml +0 -0
  267. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/view.yaml +0 -0
  268. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/webhook.yaml +0 -0
  269. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/workflow.yaml +0 -0
  270. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/workspace.yaml +0 -0
  271. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/edits-target.source.yaml +0 -0
  272. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/openapi-operations.yaml +0 -0
  273. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/schema-v1.json +0 -0
  274. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/sdk-catalog.source.yaml +0 -0
  275. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/sdk-methods.yaml +0 -0
  276. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/openapi/metadata.json +0 -0
  277. {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/openapi/openapi.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mammoth-cli
3
- Version: 2.2.71
3
+ Version: 2.2.73
4
4
  Summary: Command-line interface for the Mammoth Analytics platform
5
5
  Project-URL: homepage, https://mammoth.io
6
6
  Project-URL: repository, https://github.com/EdgeMetric/mammothsdk
@@ -6,7 +6,7 @@ not implement a second HTTP client and does not call private SDK members.
6
6
 
7
7
  from __future__ import annotations
8
8
 
9
- __version__ = "2.2.71"
9
+ __version__ = "2.2.73"
10
10
 
11
11
  # The versioned machine output envelope contract.
12
12
  SCHEMA_VERSION = 1
@@ -123,6 +123,15 @@ mammoth dashboard descriptor-data DASHBOARD_ID --input '{"body": {"params": {
123
123
  A card that reads the same with and without the filter, or a distinct count
124
124
  that equals a row count, is a wrong binding, not a data fact.
125
125
 
126
+ ## Limits
127
+
128
+ - `v3 generate` takes one `dataview_id`; `chat edit` cannot add a tile from
129
+ another view. Join the data into one view first.
130
+ - The smallest date grain is day (day/week/month/quarter/year): hourly data
131
+ shows as daily points.
132
+ - Currently a view with no numeric column gets no table or bar chart. Add a
133
+ numeric column such as a count, or build from a view that has a measure.
134
+
126
135
  ## Canvas, widget data and PDF
127
136
 
128
137
  `dashboard canvas get DASHBOARD_ID` reads the canvas (`data.canvas` incl.
@@ -14,6 +14,7 @@ hashes; stop on ambiguous schemas, authorization errors, or unknown effects.
14
14
  - [files, datasets, views and settings](resources.md)
15
15
  - [import a table from a database (SQL Server, MySQL, Postgres)](database-import.md)
16
16
  - [import a file from an SFTP server](file-import.md)
17
+ - [pull data from a REST API or Elasticsearch on a schedule](rest-api-import.md)
17
18
  - [datasets in `need_action` or `needs_view` after upload](need-action.md)
18
19
  - [typed transformations and drafts](transforms.md)
19
20
  - [typed ETL discovery](typed-etl-discovery.md)
@@ -0,0 +1,91 @@
1
+ # Pull data from a REST API (or Elasticsearch) on a schedule
2
+
3
+ REST connection -> dataset -> scheduled refresh. Every connector command runs
4
+ in a project (`--project PROJECT_ID`). The connector key is `generic_rest_api`.
5
+ Creates and refreshes are writes: get the user's confirmation first.
6
+
7
+ ```bash
8
+ mammoth connector get generic_rest_api # spec.connection_config (has base_url) + spec.connection_input_note; spec.data_source_config = JSON schema of the query keys below, plus selected_columns, max_flatten_depth, join_tables, loop_over
9
+ mammoth connector connection list generic_rest_api # reuse a connection if one fits
10
+ ```
11
+
12
+ ## 1. Connection
13
+
14
+ The body goes under `config`, with **flat** auth fields: `auth_type` (`none`,
15
+ `api_key`, `bearer`, `basic`), then `username` +
16
+ `password`, or `token`, or `key_name` + `key_value` + `inject_into`
17
+ (`header|query_param`). Do not send a nested `auth` object: an older backend
18
+ drops it and saves the connection as `auth_type: none` (the target API then
19
+ answers 401 at sample time); a backend with the fix rejects it with 4CONN003 ("Create a connection with auth as flat fields ... not a nested 'auth' object"). The base URL must be
20
+ a public host; localhost and private addresses are refused (SSRF guard).
21
+
22
+ ```bash
23
+ # request.json (mode 0600): {"config": {"name": "My API", "base_url": "https://api.example.com/v1", "auth_type": "basic", "username": "u", "password": "p"}}
24
+ mammoth connector connection create generic_rest_api --input request.json --yes
25
+ ```
26
+
27
+ The reply holds `identity_key`: that is CONNECTION_KEY below. To change
28
+ credentials later use `connector connection update ... --input` with
29
+ `{"credentials": {...}}`, not `config`. Error 4SUBS007 means the workspace plan
30
+ does not include this connector (or its paid addon is not active).
31
+
32
+ ## 2. Try the data-source config (creates no dataset)
33
+
34
+ `query` is a **JSON string** (not an object) of the data-source config:
35
+ `endpoint_path`, `http_method` (`GET|POST`), `request_body`, `query_params`,
36
+ `data_root_path` (JSONPath to the records; `[*]` is supported), `pagination`,
37
+ `flatten_nested_json`, `max_pages`.
38
+
39
+ ```bash
40
+ # sample.json: {"query": "{\"endpoint_path\": \"/posts\", \"data_root_path\": \"$\", \"max_pages\": 1}", "validate": false, "data_sample": true}
41
+ mammoth connector ds-config create generic_rest_api CONNECTION_KEY --input sample.json --yes
42
+ ```
43
+
44
+ Needs `--yes`; returns real sample rows (50 for a composite-agg
45
+ `data_root_path`). Read the column names from `data.data_sample.dataschema`.
46
+ `ds-config list generic_rest_api CONNECTION_KEY` shows the connection's configs
47
+ (`config_key`, `ds_name`, `on_refresh_action`, `query`, `table`, `profile`);
48
+ `ds-config get generic_rest_api CONNECTION_KEY CONFIG_KEY` returns one under
49
+ `ds_config`. A REST config has `data_start_date: null`. A dataset's config key
50
+ is `dataset get` -> `sources[0].details.id`.
51
+
52
+ ## 3. Dataset with a refresh schedule
53
+
54
+ `schedule_properties` and `recurrence_info` are required; without them the job
55
+ fails with "Invalid parameters". `on_refresh_action` is `replace` (swap the
56
+ rows each refresh) or `combine` (append: every refresh re-adds every row the
57
+ API returns, so rows duplicate).
58
+
59
+ ```bash
60
+ # dataset.json
61
+ # {"ds_creation_type": "cloud", "dataset_spec": {"connector_key": "generic_rest_api",
62
+ # "connection_key": "CONNECTION_KEY",
63
+ # "query_properties": {"ds_name": "My data", "table_name": "posts", "query": "<same JSON string as step 2>"},
64
+ # "schedule_properties": {"schedule_type": "moment", "first_pull_at": "now", "on_refresh_action": "replace"},
65
+ # "recurrence_info": {"interval": 1, "start_at": "2027-01-01T02:00:00"}}}
66
+ mammoth dataset create --input dataset.json
67
+ ```
68
+
69
+ ## 4. Refresh automatically
70
+
71
+ ```bash
72
+ # auto.json: {"description": "Refresh My data", "tasks": [{"task_type": "run_data_retrieval", "details": {"ds_details": [{"ds_id": DATASET_ID}]}}],
73
+ # "conditions": [{"condition_type": "at_specific_time", "details": {"frequency": "daily", "interval": 1, "start_at": "2027-01-01T02:00:00Z"}}]}
74
+ mammoth automation create 'Refresh My data' --input auto.json --yes # name required; ds_details must be a list
75
+ mammoth automation update AUTOMATION_ID --yes --input '{"patch": [{"op": "command", "path": "run", "value": {}}]}' # run now
76
+ ```
77
+
78
+ A `start_at` under 2 minutes ahead is rejected ("too soon"); a past one starts now.
79
+ More on automations: [recurring work](scheduling.md).
80
+
81
+ ## Elasticsearch
82
+
83
+ Use the connection above with `base_url` of the cluster and `POST` on
84
+ `/INDEX/_search`. Name the fields you need in `_source`: a field such as
85
+ `asctime` ("2026-10-09 15:52:46,290", comma before the millis) breaks the load.
86
+
87
+ - Documents: `"request_body": {"size": 500, "_source": ["@timestamp", "task"]}`,
88
+ `"data_root_path": "$.hits.hits[*]._source"`.
89
+ - Counts per bucket: `"request_body": {"size": 0, "aggs": {"c": {"composite": {"size": 10000, "sources": [...]}}}}`,
90
+ `"data_root_path": "$.aggregations.c.buckets[*]"` gives columns `doc_count`,
91
+ `key.<source>`.
@@ -120,7 +120,8 @@ If one exists, change it with `automation update AUTOMATION_ID` (see below)
120
120
  instead of creating another. Before a schedule that emails a client, send the
121
121
  same email to the user first (or `--dry-run` the create and show the
122
122
  recipients, subject and attached views) and get a yes. Give `start_at` a time
123
- in the future; a past `start_at` may fire straight away or never.
123
+ in the future: under 2 minutes ahead is rejected ("too soon"), a later one is
124
+ stored as sent, a past one starts now.
124
125
 
125
126
  ## Read it back
126
127
 
@@ -23,7 +23,7 @@ import typer
23
23
  from pydantic import ValidationError
24
24
 
25
25
  from mammoth_cli.context import credentials, oauth, profiles, resolver
26
- from mammoth_cli.context.endpoint import DEFAULT_SERVER_PREFIX, resolve_base_url
26
+ from mammoth_cli.context.endpoint import resolve_base_url
27
27
  from mammoth_cli.context.resolver import ResolvedAuth, resolve_auth
28
28
  from mammoth_cli.contracts.auth import LoginRequest
29
29
  from mammoth_cli.errors.envelope import (
@@ -306,13 +306,9 @@ def _choose_method(
306
306
  return method
307
307
  if invocation.input_file is not None or blockers:
308
308
  return "token"
309
- available = oauth.has_client_id(server_prefix)
310
- prefix = server_prefix if server_prefix is not None else DEFAULT_SERVER_PREFIX
311
- browser_note = "recommended" if available else f"(not yet available on {prefix})"
312
- device_note = "no browser on this machine" if available else browser_note
313
309
  typer.echo("How do you want to sign in?", err=True)
314
- typer.echo(f" 1) Browser (OAuth) {browser_note}", err=True)
315
- typer.echo(f" 2) Device code {device_note}", err=True)
310
+ typer.echo(" 1) Browser (OAuth) recommended", err=True)
311
+ typer.echo(" 2) Device code no browser on this machine", err=True)
316
312
  typer.echo(" 3) Paste an API token for CI and scripts", err=True)
317
313
  if sys.stdin.isatty():
318
314
  return _choose_by_keypress()
@@ -360,7 +360,7 @@ def connector_connection_update(invocation: Invocation) -> HandlerResult:
360
360
 
361
361
 
362
362
  def connector_ds_config_create(invocation: Invocation) -> HandlerResult:
363
- """Create a data source configuration. ``--yes`` is always required."""
363
+ """Sample a data source config; REST ``query`` is a JSON string. ``--yes`` always needed."""
364
364
  project_id = require_project(invocation)
365
365
  connector_key = _require_string_positional_at(invocation, 0, "connector key")
366
366
  connection_key = _require_string_positional_at(invocation, 1, "connection key")
@@ -138,7 +138,7 @@
138
138
  "connector.connection.get": "Get one connection's details. Connector and connection keys are positional.",
139
139
  "connector.connection.list": "List connections for a connector type; find its key with `mammoth connector active`.",
140
140
  "connector.connection.update": "Update a connection's credentials. '--yes' is always required.",
141
- "connector.ds-config.create": "Create a data source configuration. '--yes' is always required.",
141
+ "connector.ds-config.create": "Sample a data source config; REST 'query' is a JSON string. '--yes' always needed.",
142
142
  "connector.ds-config.delete": "Delete a data source configuration. Prompt or '--yes' required.",
143
143
  "connector.ds-config.delete-all": "Bulk-delete data source configurations for a connection. Prompt or '--yes' required.",
144
144
  "connector.ds-config.get": "Get one data source configuration by key.",
@@ -405,7 +405,8 @@ _COMMAND_DISCOVERY_PURPOSES = {
405
405
  ),
406
406
  "connector.get": (
407
407
  "connector database SQL Server MSSQL MySQL Postgres SFTP file server connection fields "
408
- "host port username password required to connect import table file dataset"
408
+ "host port username password required to connect import table file dataset "
409
+ "REST API Elasticsearch generic_rest_api config schema"
409
410
  ),
410
411
  "connector.connection.list": (
411
412
  "which outside external sources connected connections list database SQL Server "
@@ -419,11 +420,12 @@ _COMMAND_DISCOVERY_PURPOSES = {
419
420
  "connector.connection.create": (
420
421
  "connect a database such as SQL Server MSSQL MySQL Postgres Oracle or an SFTP file "
421
422
  "server host port username password new connection connector to import a table or "
422
- "file into a dataset"
423
+ "file into a dataset, or a REST API or Elasticsearch generic_rest_api base_url"
423
424
  ),
424
425
  "connector.ds-config.create": (
425
426
  "import pull load read retrieve a table or SQL query from a connected database such "
426
- "as SQL Server MSSQL MySQL Postgres connector connection as a new dataset rows data"
427
+ "as SQL Server MSSQL MySQL Postgres connector connection as a new dataset rows data "
428
+ "REST API Elasticsearch sample validate"
427
429
  ),
428
430
  "connector.ds-config.list": (
429
431
  "datasets imported from a connected database SQL Server MSSQL MySQL Postgres "
@@ -548,7 +550,8 @@ _COMMAND_DISCOVERY_PURPOSES = {
548
550
  # it just had no discovery-purpose text at all.
549
551
  "dataset.create": (
550
552
  "url web link fetch retrieve pull import public website endpoint api json data weburl "
551
- "file csv from an SFTP server folder cloud storage connection connector as a new dataset"
553
+ "file csv from an SFTP server folder cloud storage connection connector as a new dataset "
554
+ "REST API Elasticsearch generic_rest_api on a schedule refresh recurring"
552
555
  ),
553
556
  "dashboard.v3.generate": (
554
557
  "create build make new generate dashboard board report from a view description "
@@ -37,19 +37,12 @@ from mammoth_cli.context import credentials
37
37
  from mammoth_cli.context.credentials import OAuthSession
38
38
  from mammoth_cli.context.endpoint import DEFAULT_SERVER_PREFIX, resolve_base_url
39
39
  from mammoth_cli.context.profiles import config_dir
40
- from mammoth_cli.errors.envelope import EXIT_AUTH, EXIT_USAGE, CliError
41
-
42
- #: The first-party CLI's OAuth client id, one constant per environment (the
43
- #: server prefix). The server allow-lists these ids, so they are not
44
- #: configurable at run time. An environment absent here has no CLI client yet.
45
- #: This table is the fallback for servers that do not publish
46
- #: ``mammoth_cli_client_id`` in their OAuth metadata (see
47
- #: :func:`published_client_id`); it is removed once every server publishes it.
48
- OAUTH_CLIENT_IDS: dict[str, str] = {
49
- "challenger": "oc_aea5c2ce829da3f8",
50
- "koyal": "oc_f2566336e235795c",
51
- "app": "oc_b559f85cfb4de34c",
52
- }
40
+ from mammoth_cli.errors.envelope import EXIT_AUTH, CliError
41
+
42
+ #: The first-party CLI's OAuth client id: the same in every environment. The
43
+ #: server publishes it in its OAuth metadata (see :func:`published_client_id`);
44
+ #: this is the id used when it publishes nothing.
45
+ BUILTIN_CLIENT_ID = "mammoth-cli"
53
46
 
54
47
  #: Refresh when the access token has less than this long to live.
55
48
  REFRESH_MARGIN_SECONDS = 120
@@ -59,7 +52,6 @@ _LOCK_POLL_SECONDS = 0.1
59
52
  _LOCK_WAIT_SECONDS = 60.0
60
53
 
61
54
  CODE_LOGIN_EXPIRED = "login_expired"
62
- CODE_OAUTH_UNAVAILABLE = "oauth_unavailable"
63
55
  CODE_OAUTH_LOGIN_FAILED = "oauth_login_failed"
64
56
  CODE_DEVICE_LOGIN_EXPIRED = "device_login_expired"
65
57
 
@@ -92,7 +84,7 @@ def published_client_id(prefix: str) -> str | None:
92
84
 
93
85
  One GET per environment per process. None when the field is absent, the
94
86
  server cannot be reached, or it answers anything but metadata: the caller
95
- then falls back to :data:`OAUTH_CLIENT_IDS`.
87
+ then uses :data:`BUILTIN_CLIENT_ID`.
96
88
  """
97
89
  from mammoth import oauth as sdk_oauth
98
90
 
@@ -108,36 +100,10 @@ def published_client_id(prefix: str) -> str | None:
108
100
  return value if isinstance(value, str) and value else None
109
101
 
110
102
 
111
- def _resolve_client_id(server_prefix: str | None) -> str | None:
112
- prefix = server_prefix if server_prefix is not None else DEFAULT_SERVER_PREFIX
113
- return published_client_id(prefix) or OAUTH_CLIENT_IDS.get(prefix)
114
-
115
-
116
- def has_client_id(server_prefix: str | None) -> bool:
117
- """Whether the CLI has an OAuth client for this environment.
118
-
119
- Makes a network call (cached per process): call it only on login paths.
120
- """
121
- return _resolve_client_id(server_prefix) is not None
122
-
123
-
124
103
  def client_id_for(server_prefix: str | None) -> str:
125
- """Return the CLI's OAuth client id for one environment.
126
-
127
- Raises:
128
- CliError: ``oauth_unavailable`` when the environment has no CLI client.
129
- """
130
- client_id = _resolve_client_id(server_prefix)
131
- if client_id is not None:
132
- return client_id
104
+ """Return the CLI's OAuth client id: the published one, else the built-in one."""
133
105
  prefix = server_prefix if server_prefix is not None else DEFAULT_SERVER_PREFIX
134
- raise CliError(
135
- code=CODE_OAUTH_UNAVAILABLE,
136
- message=f"Browser sign-in is not available on '{prefix}' yet.",
137
- exit_status=EXIT_USAGE,
138
- hint="Pick option 3 (paste an API token) or run: mammoth auth login --method token",
139
- recovery_commands=["mammoth auth login --method token"],
140
- )
106
+ return published_client_id(prefix) or BUILTIN_CLIENT_ID
141
107
 
142
108
 
143
109
  # --- PKCE ---------------------------------------------------------------------
@@ -161,7 +161,6 @@ ERROR_SUMMARIES: dict[str, str] = {
161
161
  "not_authenticated": _S_SIGN_IN,
162
162
  "not_implemented": _S_UNAVAILABLE,
163
163
  "oauth_login_failed": "The browser sign-in didn't complete.",
164
- "oauth_unavailable": "Browser sign-in isn't available on this server.",
165
164
  "oauth_grant_revoke_failed": "The server did not revoke this sign-in grant.",
166
165
  "outcome_unknown": "It isn't clear whether this step went through. Check before trying again.",
167
166
  "pipeline_changed": "The pipeline was changed by someone else while this step ran.",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mammoth-cli"
3
- version = "2.2.71"
3
+ version = "2.2.73"
4
4
  description = "Command-line interface for the Mammoth Analytics platform"
5
5
  authors = [{name = "Mammoth Analytics", email = "support@mammoth.io"}]
6
6
  readme = "README.md"
File without changes
File without changes
File without changes