anomalyarmor-cli 0.1.1__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.
- anomalyarmor_cli-0.1.1/.gitignore +239 -0
- anomalyarmor_cli-0.1.1/PKG-INFO +76 -0
- anomalyarmor_cli-0.1.1/README.md +40 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/__init__.py +58 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/_version.py +3 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/cli.py +1402 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/client.py +204 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/config.py +94 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/exceptions.py +143 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/models.py +285 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/resources/__init__.py +23 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/resources/alerts.py +296 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/resources/api_keys.py +138 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/resources/assets.py +76 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/resources/badges.py +211 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/resources/base.py +49 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/resources/freshness.py +152 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/resources/intelligence.py +135 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/resources/jobs.py +46 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/resources/lineage.py +66 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/resources/schema.py +85 -0
- anomalyarmor_cli-0.1.1/anomalyarmor/resources/tags.py +204 -0
- anomalyarmor_cli-0.1.1/pyproject.toml +69 -0
- anomalyarmor_cli-0.1.1/tests/__init__.py +1 -0
- anomalyarmor_cli-0.1.1/tests/test_cli.py +352 -0
- anomalyarmor_cli-0.1.1/tests/test_client.py +193 -0
- anomalyarmor_cli-0.1.1/tests/test_config.py +251 -0
- anomalyarmor_cli-0.1.1/tests/test_exceptions.py +127 -0
- anomalyarmor_cli-0.1.1/tests/test_integration.py +291 -0
- anomalyarmor_cli-0.1.1/tests/test_resources.py +372 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
# Dependencies
|
|
2
|
+
node_modules/
|
|
3
|
+
.pnp/
|
|
4
|
+
.pnp.js
|
|
5
|
+
.npm
|
|
6
|
+
yarn.lock
|
|
7
|
+
# Note: package-lock.json is now tracked for npm ci in CI/CD
|
|
8
|
+
|
|
9
|
+
# Claude-specific
|
|
10
|
+
.claude/settings.json
|
|
11
|
+
.claude/*.local.md
|
|
12
|
+
.claude/backups/
|
|
13
|
+
|
|
14
|
+
# Autofix pipeline temp files
|
|
15
|
+
scripts/autofix/bugs.json
|
|
16
|
+
scripts/autofix/.processed_bugs
|
|
17
|
+
|
|
18
|
+
# Python
|
|
19
|
+
__pycache__/
|
|
20
|
+
*.py[cod]
|
|
21
|
+
*$py.class
|
|
22
|
+
*.so
|
|
23
|
+
*.egg-info/
|
|
24
|
+
*.egg
|
|
25
|
+
.Python
|
|
26
|
+
build/
|
|
27
|
+
dist/
|
|
28
|
+
*.lock
|
|
29
|
+
!requirements.lock
|
|
30
|
+
|
|
31
|
+
# Virtual environments
|
|
32
|
+
env/
|
|
33
|
+
venv/
|
|
34
|
+
ENV/
|
|
35
|
+
.env/
|
|
36
|
+
.venv/
|
|
37
|
+
env.bak/
|
|
38
|
+
venv.bak/
|
|
39
|
+
develop-eggs/
|
|
40
|
+
eggs/
|
|
41
|
+
.eggs/
|
|
42
|
+
lib/
|
|
43
|
+
lib64/
|
|
44
|
+
parts/
|
|
45
|
+
sdist/
|
|
46
|
+
var/
|
|
47
|
+
.installed.cfg
|
|
48
|
+
|
|
49
|
+
# Environment variables
|
|
50
|
+
.env*
|
|
51
|
+
!.env.example
|
|
52
|
+
!.clerk-prod.env.example
|
|
53
|
+
|
|
54
|
+
# Demo credentials (SECURITY CRITICAL)
|
|
55
|
+
.demo-credentials
|
|
56
|
+
|
|
57
|
+
# Build outputs
|
|
58
|
+
/build/
|
|
59
|
+
/dist/
|
|
60
|
+
frontend/build/
|
|
61
|
+
|
|
62
|
+
# Generated reports
|
|
63
|
+
api_compliance_violations.json
|
|
64
|
+
*_compliance_report.json
|
|
65
|
+
tmp/
|
|
66
|
+
frontend/dist/
|
|
67
|
+
backend/build/
|
|
68
|
+
backend/dist/
|
|
69
|
+
|
|
70
|
+
# Testing & Coverage
|
|
71
|
+
coverage/
|
|
72
|
+
.pytest_cache/
|
|
73
|
+
htmlcov/
|
|
74
|
+
.tox/
|
|
75
|
+
.coverage*
|
|
76
|
+
coverage.xml
|
|
77
|
+
coverage.json
|
|
78
|
+
*.cover
|
|
79
|
+
.playwright-mcp/
|
|
80
|
+
|
|
81
|
+
# Linting & Type Checking
|
|
82
|
+
.mypy_cache/
|
|
83
|
+
.ruff_cache/
|
|
84
|
+
|
|
85
|
+
# IDEs & Editors
|
|
86
|
+
.idea/
|
|
87
|
+
.vscode/
|
|
88
|
+
*.swp
|
|
89
|
+
*.swo
|
|
90
|
+
*.sublime-*
|
|
91
|
+
.DS_Store
|
|
92
|
+
Thumbs.db
|
|
93
|
+
|
|
94
|
+
# Docker
|
|
95
|
+
.docker/
|
|
96
|
+
docker-compose.override.yml
|
|
97
|
+
postgres_data/
|
|
98
|
+
frontend_node_modules/
|
|
99
|
+
api_node_modules/
|
|
100
|
+
localstack_data/
|
|
101
|
+
|
|
102
|
+
# Logs
|
|
103
|
+
logs/
|
|
104
|
+
*.log
|
|
105
|
+
*-debug.log*
|
|
106
|
+
*-error.log*
|
|
107
|
+
|
|
108
|
+
# Cache
|
|
109
|
+
.eslintcache
|
|
110
|
+
.cache/
|
|
111
|
+
.parcel-cache/
|
|
112
|
+
.serena
|
|
113
|
+
|
|
114
|
+
# TypeScript build artifacts
|
|
115
|
+
*.tsbuildinfo
|
|
116
|
+
.tsbuildinfo
|
|
117
|
+
test-output.css
|
|
118
|
+
test-minimal.css
|
|
119
|
+
|
|
120
|
+
# Database
|
|
121
|
+
*.db
|
|
122
|
+
*.sqlite*
|
|
123
|
+
.data/
|
|
124
|
+
|
|
125
|
+
# Terraform (SECURITY CRITICAL)
|
|
126
|
+
terraform/.terraform/
|
|
127
|
+
terraform.tfstate*
|
|
128
|
+
**/terraform.tfstate*
|
|
129
|
+
*.tfstate*
|
|
130
|
+
terraform/.terraform.lock.hcl
|
|
131
|
+
**/.terraform/
|
|
132
|
+
# Prevent terraform.tfvars from being committed (may contain secrets)
|
|
133
|
+
**/terraform.tfvars
|
|
134
|
+
terraform/terraform.tfvars
|
|
135
|
+
|
|
136
|
+
# AWS Audits - keep README, ignore CSVs
|
|
137
|
+
data/aws/audits/*.csv
|
|
138
|
+
!data/aws/audits/README.md
|
|
139
|
+
|
|
140
|
+
# Development
|
|
141
|
+
.dev_pids
|
|
142
|
+
*.pid
|
|
143
|
+
.backend_pid
|
|
144
|
+
scripts/services/workers/.worker_pids
|
|
145
|
+
|
|
146
|
+
# Git worktrees
|
|
147
|
+
.worktrees/
|
|
148
|
+
|
|
149
|
+
# Generated docs
|
|
150
|
+
scripts/docs/generated/
|
|
151
|
+
scripts/tools/docs/generated/
|
|
152
|
+
docs/generated/
|
|
153
|
+
|
|
154
|
+
# Prevent docs directories in backend/frontend (should be in root docs/)
|
|
155
|
+
backend/docs/
|
|
156
|
+
frontend/docs/
|
|
157
|
+
|
|
158
|
+
# Debug/test files
|
|
159
|
+
backend/debug_*.py
|
|
160
|
+
backend/test_*.py
|
|
161
|
+
!backend/tests/
|
|
162
|
+
**/test_results.json
|
|
163
|
+
**/*_test_results.json
|
|
164
|
+
|
|
165
|
+
# Project-specific
|
|
166
|
+
frontend/src/assets/phoenix_theme_backup/
|
|
167
|
+
phoenix_assets/
|
|
168
|
+
|
|
169
|
+
# Knowledge Base - Company Data (SECURITY CRITICAL)
|
|
170
|
+
backend/knowledge_base/companies/
|
|
171
|
+
backend/knowledge_base/.cache/
|
|
172
|
+
|
|
173
|
+
# Temporary files
|
|
174
|
+
.demo_pids
|
|
175
|
+
*.tmp
|
|
176
|
+
*.temp
|
|
177
|
+
*.bak
|
|
178
|
+
*.backup
|
|
179
|
+
*~
|
|
180
|
+
tmp/
|
|
181
|
+
.worktrees
|
|
182
|
+
api_validation_report_*.json
|
|
183
|
+
.last_backup
|
|
184
|
+
CLAUDE.md.bak*
|
|
185
|
+
|
|
186
|
+
# Demo/test credentials
|
|
187
|
+
.demo-credentials
|
|
188
|
+
|
|
189
|
+
# Duplicate/backup files
|
|
190
|
+
frontend/Dockerfile.frontend
|
|
191
|
+
frontend/Dockerfile.simple
|
|
192
|
+
frontend/nginx.conf
|
|
193
|
+
frontend/test-signup-flow.md
|
|
194
|
+
|
|
195
|
+
# Terraform planning
|
|
196
|
+
terraform/index.html
|
|
197
|
+
terraform/tfplan
|
|
198
|
+
.env.prod
|
|
199
|
+
|
|
200
|
+
# AWS ECS task definitions (contain production secrets)
|
|
201
|
+
*task-definition*.json
|
|
202
|
+
task-definition.json
|
|
203
|
+
frontend/.env
|
|
204
|
+
backend/.env
|
|
205
|
+
.env
|
|
206
|
+
**/secrets.tfvars
|
|
207
|
+
**/terraform.secrets.tfvars
|
|
208
|
+
secrets/
|
|
209
|
+
**/secrets.tfvars
|
|
210
|
+
**/terraform.secrets.tfvars
|
|
211
|
+
secrets/
|
|
212
|
+
cookies.txt
|
|
213
|
+
logs/
|
|
214
|
+
output.txt
|
|
215
|
+
build.log
|
|
216
|
+
localstack_data/
|
|
217
|
+
*.tfplan
|
|
218
|
+
.clerk-prod.env
|
|
219
|
+
|
|
220
|
+
# Health Monitor Reports (auto-generated)
|
|
221
|
+
backend/tools/health_monitor/reports/
|
|
222
|
+
|
|
223
|
+
# Analysis Reports (auto-generated)
|
|
224
|
+
endpoint_analysis_report.json
|
|
225
|
+
CODE_SMELL_ANALYSIS.md
|
|
226
|
+
|
|
227
|
+
# Script output files (auto-generated)
|
|
228
|
+
backend/scripts/api-pattern-audit.json
|
|
229
|
+
backend/scripts/api-violations-analysis.json
|
|
230
|
+
backend/scripts/api-patterns-detailed.json
|
|
231
|
+
backend/scripts/api_compliance_audit.json
|
|
232
|
+
backend/scripts/api_endpoints_audit.json
|
|
233
|
+
backend/scripts/dal-coverage.xml
|
|
234
|
+
backend/scripts/dal-coverage-report.md
|
|
235
|
+
backend/scripts/performance-results.json
|
|
236
|
+
backend/scripts/development/api_endpoints_audit.json
|
|
237
|
+
backend/scripts/development/api_endpoints_audit.md
|
|
238
|
+
reports/
|
|
239
|
+
.beads/
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: anomalyarmor-cli
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: AnomalyArmor SDK and CLI for data observability
|
|
5
|
+
Project-URL: Homepage, https://anomalyarmor.com
|
|
6
|
+
Project-URL: Documentation, https://docs.anomalyarmor.com
|
|
7
|
+
Project-URL: Repository, https://github.com/anomalyarmor/core
|
|
8
|
+
Author-email: AnomalyArmor <support@anomalyarmor.com>
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
Keywords: cli,data-observability,data-quality,monitoring,sdk
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
|
+
Requires-Python: >=3.9
|
|
23
|
+
Requires-Dist: httpx>=0.25.0
|
|
24
|
+
Requires-Dist: pydantic>=2.0.0
|
|
25
|
+
Requires-Dist: pyyaml>=6.0
|
|
26
|
+
Requires-Dist: rich>=13.0.0
|
|
27
|
+
Requires-Dist: typer>=0.9.0
|
|
28
|
+
Provides-Extra: dev
|
|
29
|
+
Requires-Dist: mypy>=1.0.0; extra == 'dev'
|
|
30
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
|
|
31
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
|
|
32
|
+
Requires-Dist: pytest>=7.0.0; extra == 'dev'
|
|
33
|
+
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
34
|
+
Requires-Dist: types-pyyaml>=6.0.0; extra == 'dev'
|
|
35
|
+
Description-Content-Type: text/markdown
|
|
36
|
+
|
|
37
|
+
# AnomalyArmor Python SDK
|
|
38
|
+
|
|
39
|
+
Python SDK and CLI for AnomalyArmor data observability platform.
|
|
40
|
+
|
|
41
|
+
## Installation
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
pip install anomalyarmor-cli
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Quick Start
|
|
48
|
+
|
|
49
|
+
```python
|
|
50
|
+
from anomalyarmor import AnomalyArmorClient
|
|
51
|
+
|
|
52
|
+
client = AnomalyArmorClient(
|
|
53
|
+
api_key="your-api-key",
|
|
54
|
+
base_url="https://api.anomalyarmor.com"
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
# List assets
|
|
58
|
+
assets = client.assets.list()
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## CLI Usage
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# Configure credentials
|
|
65
|
+
armor config set --api-key YOUR_API_KEY --base-url https://api.anomalyarmor.com
|
|
66
|
+
|
|
67
|
+
# List assets
|
|
68
|
+
armor assets list
|
|
69
|
+
|
|
70
|
+
# Apply configuration from YAML
|
|
71
|
+
armor apply config.yaml
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Documentation
|
|
75
|
+
|
|
76
|
+
See [docs.anomalyarmor.com](https://docs.anomalyarmor.com) for full documentation.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# AnomalyArmor Python SDK
|
|
2
|
+
|
|
3
|
+
Python SDK and CLI for AnomalyArmor data observability platform.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install anomalyarmor-cli
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```python
|
|
14
|
+
from anomalyarmor import AnomalyArmorClient
|
|
15
|
+
|
|
16
|
+
client = AnomalyArmorClient(
|
|
17
|
+
api_key="your-api-key",
|
|
18
|
+
base_url="https://api.anomalyarmor.com"
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
# List assets
|
|
22
|
+
assets = client.assets.list()
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## CLI Usage
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# Configure credentials
|
|
29
|
+
armor config set --api-key YOUR_API_KEY --base-url https://api.anomalyarmor.com
|
|
30
|
+
|
|
31
|
+
# List assets
|
|
32
|
+
armor assets list
|
|
33
|
+
|
|
34
|
+
# Apply configuration from YAML
|
|
35
|
+
armor apply config.yaml
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Documentation
|
|
39
|
+
|
|
40
|
+
See [docs.anomalyarmor.com](https://docs.anomalyarmor.com) for full documentation.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"""AnomalyArmor SDK for Python.
|
|
2
|
+
|
|
3
|
+
The armor SDK provides programmatic access to AnomalyArmor's data observability platform.
|
|
4
|
+
|
|
5
|
+
Quick Start:
|
|
6
|
+
>>> from anomalyarmor import Client
|
|
7
|
+
>>> client = Client(api_key="aa_live_...")
|
|
8
|
+
>>>
|
|
9
|
+
>>> # List assets
|
|
10
|
+
>>> assets = client.assets.list()
|
|
11
|
+
>>> for asset in assets:
|
|
12
|
+
... print(asset.qualified_name)
|
|
13
|
+
>>>
|
|
14
|
+
>>> # Check freshness
|
|
15
|
+
>>> freshness = client.freshness.get("postgresql.mydb.public.users")
|
|
16
|
+
>>> if freshness.is_stale:
|
|
17
|
+
... print(f"Stale for {freshness.hours_since_update} hours")
|
|
18
|
+
|
|
19
|
+
Environment Variables:
|
|
20
|
+
ARMOR_API_KEY: Your API key (alternative to passing in code)
|
|
21
|
+
ARMOR_API_URL: API base URL (default: https://app.anomalyarmor.ai/api/v1)
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
from anomalyarmor._version import __version__
|
|
25
|
+
from anomalyarmor.client import Client
|
|
26
|
+
from anomalyarmor.exceptions import (
|
|
27
|
+
ArmorError,
|
|
28
|
+
AuthenticationError,
|
|
29
|
+
DataStaleError,
|
|
30
|
+
NotFoundError,
|
|
31
|
+
RateLimitError,
|
|
32
|
+
ValidationError,
|
|
33
|
+
)
|
|
34
|
+
from anomalyarmor.models import (
|
|
35
|
+
Alert,
|
|
36
|
+
Asset,
|
|
37
|
+
FreshnessStatus,
|
|
38
|
+
LineageGraph,
|
|
39
|
+
SchemaChange,
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
__all__ = [
|
|
43
|
+
"__version__",
|
|
44
|
+
"Client",
|
|
45
|
+
# Exceptions
|
|
46
|
+
"ArmorError",
|
|
47
|
+
"AuthenticationError",
|
|
48
|
+
"DataStaleError",
|
|
49
|
+
"NotFoundError",
|
|
50
|
+
"RateLimitError",
|
|
51
|
+
"ValidationError",
|
|
52
|
+
# Models
|
|
53
|
+
"Asset",
|
|
54
|
+
"FreshnessStatus",
|
|
55
|
+
"SchemaChange",
|
|
56
|
+
"LineageGraph",
|
|
57
|
+
"Alert",
|
|
58
|
+
]
|