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.
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/PKG-INFO +1 -1
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/__init__.py +1 -1
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +9 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +1 -0
- mammoth_cli-2.2.73/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/rest-api-import.md +91 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/scheduling.md +2 -1
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/auth.py +3 -7
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/connector.py +1 -1
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/help_summaries.json +1 -1
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/schema.py +7 -4
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/context/oauth.py +9 -43
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/errors/envelope.py +0 -1
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/pyproject.toml +1 -1
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/.gitignore +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/LICENSE +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/README.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/__main__.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/app.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/about-mammoth.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities-misc.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/calc.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-qa.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-style.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-template.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/link.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/log.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/resolve.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/token.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view-transform.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/build-an-agent.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/database-import.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/end-to-end.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/file-import.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/need-action.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/report-checklist.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/__init__.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/_lazy.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/activity.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/addon.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/agent.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/ai.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/annotation.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/automation.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/batch.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/billing.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/browse.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/calc.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/capability.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/client_app.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/completion.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/config.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/context.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/dashboard.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/data_app.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/dataset.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/doctor.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/external_key.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/file.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/folder.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/job.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/link.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/notification.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/parameter.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/project.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/registry.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/report.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/resolve.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/schedule.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/skill.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/snippet.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/support.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/template.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/trash.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/upgrade.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/user.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/view.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/view_ops.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/view_profile.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/webhook.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/workflow.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/commands/workspace.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/context/__init__.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/context/credentials.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/context/endpoint.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/context/keyring_backend.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/context/profiles.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/context/resolver.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/contracts/__init__.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/contracts/auth.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/embed.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/errors/__init__.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/manifest/__init__.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/manifest/loader.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/messages/__init__.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/output/__init__.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/output/envelope.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/output/normalize.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/output/policy.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/output/progress.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/output/render.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/py.typed +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/__init__.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/confirm.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/dataset_health.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/dryrun.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/dryrun_targets.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/embedded.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/executor.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/input_loader.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/intent_only.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/invocation.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/locked_files.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/new_data.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/opens.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/options.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/parents.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/runlog.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/session.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/state.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/strict.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/updates.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/validate.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/runtime/verify.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/__init__.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/append_blank_columns.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/argspec.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/board_values.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/coerce.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/command_contract.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/conditional_format.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/conditions.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/dashboard_filters.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/dashboard_pages.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/dashboard_review.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/data_profile.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/data_quality.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/dispatch.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/explore_cards.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/factory.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/folder_ids.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/input_fields.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/job_outcome.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/listing.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/local_time.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/mapping.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/openapi_types.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/positionals.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/protocol.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/read_queries.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/sdk_service.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/sql_check.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/stored_stats.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/testing.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/text_dates.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/type_system.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/view_analysis.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/view_variants.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/services/write_impact.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/skills/__init__.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/skills/installer.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/skills/steering.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/testing.py +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/activity.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/addon.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/agent.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/ai.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/annotation.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/auth.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/automation.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/batch.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/billing.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/browse.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/calc.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/capability.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/client-app.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/completion.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/config.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/connector.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/context.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/dashboard.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/data-app.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/dataset.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/doctor.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/external-key.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/file.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/folder.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/job.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/link.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/log.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/notification.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/parameter.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/project.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/report.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/resolve.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/schedule.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/schema.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/skill.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/snippet.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/support.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/template.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/token.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/trash.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/upgrade.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/user.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/version.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/view.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/webhook.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/workflow.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/commands/workspace.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/edits-target.source.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/openapi-operations.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/schema-v1.json +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/sdk-catalog.source.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/manifests/sdk-methods.yaml +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/openapi/metadata.json +0 -0
- {mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/spec/openapi/openapi.json +0 -0
|
@@ -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)
|
mammoth_cli-2.2.73/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/rest-api-import.md
ADDED
|
@@ -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
|
|
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
|
|
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(
|
|
315
|
-
typer.echo(
|
|
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
|
-
"""
|
|
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": "
|
|
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,
|
|
41
|
-
|
|
42
|
-
#: The first-party CLI's OAuth client id
|
|
43
|
-
#: server
|
|
44
|
-
#:
|
|
45
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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.",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mammoth_cli-2.2.71 → mammoth_cli-2.2.73}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|