aisoc-cli 0.1.0__py3-none-any.whl
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.
- aisoc_cli/__init__.py +3 -0
- aisoc_cli/main.py +1372 -0
- aisoc_cli/templates/connector/README.md.tmpl +37 -0
- aisoc_cli/templates/connector/connector.py.tmpl +106 -0
- aisoc_cli/templates/connector/plugin.yaml.tmpl +42 -0
- aisoc_cli/templates/detection/README.md.tmpl +30 -0
- aisoc_cli/templates/detection/plugin.yaml.tmpl +17 -0
- aisoc_cli/templates/detection/rules/example.yaml.tmpl +28 -0
- aisoc_cli/templates/enricher/README.md.tmpl +29 -0
- aisoc_cli/templates/enricher/plugin.py.tmpl +42 -0
- aisoc_cli/templates/enricher/plugin.yaml.tmpl +29 -0
- aisoc_cli/templates/responder/README.md.tmpl +25 -0
- aisoc_cli/templates/responder/plugin.py.tmpl +66 -0
- aisoc_cli/templates/responder/plugin.yaml.tmpl +32 -0
- aisoc_cli/templates/widget/README.md.tmpl +40 -0
- aisoc_cli/templates/widget/plugin.yaml.tmpl +29 -0
- aisoc_cli/templates/widget/widget.py.tmpl +50 -0
- aisoc_cli-0.1.0.dist-info/METADATA +90 -0
- aisoc_cli-0.1.0.dist-info/RECORD +21 -0
- aisoc_cli-0.1.0.dist-info/WHEEL +4 -0
- aisoc_cli-0.1.0.dist-info/entry_points.txt +2 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: aisoc-cli
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: AiSOC Developer CLI — scaffold, validate, and publish plugins and detections
|
|
5
|
+
Project-URL: Homepage, https://github.com/beenuar/AiSOC
|
|
6
|
+
Project-URL: Documentation, https://github.com/beenuar/AiSOC#readme
|
|
7
|
+
Project-URL: Repository, https://github.com/beenuar/AiSOC
|
|
8
|
+
Author-email: Beenu Arora <beenu@cyble.com>
|
|
9
|
+
License: MIT
|
|
10
|
+
Keywords: aisoc,cli,plugin,security,soc
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Topic :: Security
|
|
18
|
+
Requires-Python: >=3.11
|
|
19
|
+
Requires-Dist: click>=8.1
|
|
20
|
+
Requires-Dist: cryptography<51,>=46
|
|
21
|
+
Requires-Dist: httpx>=0.27
|
|
22
|
+
Requires-Dist: jsonschema>=4.21
|
|
23
|
+
Requires-Dist: pyyaml>=6.0
|
|
24
|
+
Requires-Dist: rich>=13.7
|
|
25
|
+
Requires-Dist: structlog>=24.1
|
|
26
|
+
Provides-Extra: dev
|
|
27
|
+
Requires-Dist: mypy<3,>=2.3.1; extra == 'dev'
|
|
28
|
+
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
|
|
29
|
+
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
30
|
+
Requires-Dist: ruff<0.17,>=0.16.8; extra == 'dev'
|
|
31
|
+
Description-Content-Type: text/markdown
|
|
32
|
+
|
|
33
|
+
# aisoc-cli
|
|
34
|
+
|
|
35
|
+
Developer CLI for building, validating, and publishing AiSOC plugins and detection rules.
|
|
36
|
+
|
|
37
|
+
> **Status — monorepo today, not yet on PyPI.** The CLI ships from this monorepo and is fully functional today. `pip install aisoc-cli` does not resolve: the upload is blocked on registry credentials, which is an account action rather than a code change. The CLI name (`aisoc`) and command surface stay identical once it ships.
|
|
38
|
+
|
|
39
|
+
## Installation
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Today (from this monorepo):
|
|
43
|
+
git clone https://github.com/beenuar/AiSOC.git
|
|
44
|
+
cd AiSOC && pip install -e packages/aisoc-cli
|
|
45
|
+
|
|
46
|
+
# Not yet on PyPI — the upload is blocked on registry credentials,
|
|
47
|
+
# which is an account action rather than a code change. Until then, install
|
|
48
|
+
# from source with the command above.
|
|
49
|
+
# pipx install aisoc-cli # recommended (isolated venv)
|
|
50
|
+
# pip install aisoc-cli
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Commands
|
|
54
|
+
|
|
55
|
+
### Plugin Scaffold
|
|
56
|
+
```bash
|
|
57
|
+
aisoc plugin scaffold my-enricher
|
|
58
|
+
aisoc plugin scaffold my-connector --type connector
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Plugin Validate
|
|
62
|
+
```bash
|
|
63
|
+
aisoc plugin validate ./my-enricher
|
|
64
|
+
aisoc plugin validate ./my-enricher/plugin.yaml
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Plugin Publish
|
|
68
|
+
```bash
|
|
69
|
+
export AISOC_API_URL=https://api.example.com
|
|
70
|
+
export AISOC_API_KEY=sk-...
|
|
71
|
+
aisoc plugin publish ./my-enricher
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Detection Validate
|
|
75
|
+
```bash
|
|
76
|
+
aisoc detection validate ./detections/brute-force.yaml
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Key Generation
|
|
80
|
+
```bash
|
|
81
|
+
aisoc keygen # generates ~/.aisoc/signing.key + signing.pub
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Environment Variables
|
|
85
|
+
|
|
86
|
+
| Variable | Description |
|
|
87
|
+
|---|---|
|
|
88
|
+
| `AISOC_API_URL` | AiSOC API base URL (default: `http://localhost:8000`) |
|
|
89
|
+
| `AISOC_API_KEY` | API key for authentication |
|
|
90
|
+
| `AISOC_SIGNING_KEY` | Path to Ed25519 private key (default: `~/.aisoc/signing.key`) |
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
aisoc_cli/__init__.py,sha256=qjv7YQRjubtX-j5gVcBnKWV8sVLh5BxUqEKG63IsuVQ,89
|
|
2
|
+
aisoc_cli/main.py,sha256=cdxMoG-wnPaCeSrgU3akTL5VyUpp4zNcCeqH6RKDwQM,49808
|
|
3
|
+
aisoc_cli/templates/connector/README.md.tmpl,sha256=7LUUuNMLnqsWEOSarcom4fztoMdi3XApaiJBg8bLt8I,939
|
|
4
|
+
aisoc_cli/templates/connector/connector.py.tmpl,sha256=pM0IGrY2CK_kp0NrFQwsLaTwEBRtXxbHy3aFNg2hyB4,4209
|
|
5
|
+
aisoc_cli/templates/connector/plugin.yaml.tmpl,sha256=u51V8560xdG17scHOJDX7V9XVmTowYOjTm10fbd-2z4,1160
|
|
6
|
+
aisoc_cli/templates/detection/README.md.tmpl,sha256=vT29-ql7flzUvvXU3AkoA6mnhWgfqy82cafW0EcgEAQ,582
|
|
7
|
+
aisoc_cli/templates/detection/plugin.yaml.tmpl,sha256=8Pd4yUL8oEG4fIUwIVOGB0DfOZcuJqArFei8U-VFnKc,387
|
|
8
|
+
aisoc_cli/templates/detection/rules/example.yaml.tmpl,sha256=ZmTkUYwdnKnQUqGDqx3RsNXG-p47rNHugM7iwRJcPu0,849
|
|
9
|
+
aisoc_cli/templates/enricher/README.md.tmpl,sha256=sVfecWecqpmO6JZc7l9Dun58K231H87Lvxz0ofN8dHY,603
|
|
10
|
+
aisoc_cli/templates/enricher/plugin.py.tmpl,sha256=Rn0CkodMsFPjHNGkzJIA8KVHub8-Q-SEnZy_vfO4M8U,1332
|
|
11
|
+
aisoc_cli/templates/enricher/plugin.yaml.tmpl,sha256=ijl96ekuh8nRCgtOg8K6jjLZqy49nlMH7dYW5SbznV0,765
|
|
12
|
+
aisoc_cli/templates/responder/README.md.tmpl,sha256=SOhkJjNWKytCIkkJxjaE9L9N4x-BCgDwirmilBMgByk,550
|
|
13
|
+
aisoc_cli/templates/responder/plugin.py.tmpl,sha256=cBsD8VTsIv7WEnUkwyhUwB0PoxbY2Bg8MmRoMOzWV58,2281
|
|
14
|
+
aisoc_cli/templates/responder/plugin.yaml.tmpl,sha256=qIuvjLV2qJItvCw-4bNWz7cWc1gKDcNLdltzgzUUjhA,803
|
|
15
|
+
aisoc_cli/templates/widget/README.md.tmpl,sha256=XYCc2IwVXY-tM8mARMJfFFK6AKOruivr0DhBvbCDrUE,1027
|
|
16
|
+
aisoc_cli/templates/widget/plugin.yaml.tmpl,sha256=BdfoGMpP57lqwnY3QTkYx-ZWHhgtYWP1yepBA1xDxb0,749
|
|
17
|
+
aisoc_cli/templates/widget/widget.py.tmpl,sha256=5XuDKMbVR7V5pRlCPLBbJwhCLcl_0jrGhHBrztg5E2s,1706
|
|
18
|
+
aisoc_cli-0.1.0.dist-info/METADATA,sha256=1YZWMeRRvLoMIwlXoAImWrDz5MX5OoXBwef9HtqRpmA,2940
|
|
19
|
+
aisoc_cli-0.1.0.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
|
|
20
|
+
aisoc_cli-0.1.0.dist-info/entry_points.txt,sha256=gGKdusA819JZ7xtrqd1fl-mlessEbg_ynx01i0hGDUo,45
|
|
21
|
+
aisoc_cli-0.1.0.dist-info/RECORD,,
|