secryn-cli 0.1.0__tar.gz → 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.
@@ -0,0 +1,159 @@
1
+ Metadata-Version: 2.4
2
+ Name: secryn-cli
3
+ Version: 0.1.1
4
+ Summary: Secryn CLI — manage your secrets from the terminal
5
+ Author: Secryn
6
+ License: Apache-2.0
7
+ Project-URL: Repository, https://github.com/P4ciuf/secryn
8
+ Requires-Python: >=3.10
9
+ Description-Content-Type: text/markdown
10
+ Requires-Dist: click>=8.0
11
+ Requires-Dist: requests>=2.28
12
+ Provides-Extra: dev
13
+ Requires-Dist: ruff>=0.11; extra == "dev"
14
+
15
+ # Secryn CLI
16
+
17
+ [![PyPI](https://img.shields.io/pypi/v/secryn-cli)](https://pypi.org/project/secryn-cli/)
18
+ [![Python](https://img.shields.io/pypi/pyversions/secryn-cli.svg)](https://pypi.org/project/secryn-cli/)
19
+ [![License](https://img.shields.io/pypi/l/secryn-cli.svg)](https://github.com/P4ciuf/secryn/blob/main/LICENSE)
20
+
21
+ Command-line interface for [Secryn](https://secryn.xyz) — manage your secrets, projects, and API keys without leaving the terminal.
22
+
23
+ ## Installation
24
+
25
+ ### Via pipx (recommended)
26
+
27
+ ```bash
28
+ pipx install secryn-cli
29
+ ```
30
+
31
+ ### From source
32
+
33
+ ```bash
34
+ cd packages/cli
35
+ pipx install -e .
36
+ ```
37
+
38
+ ### Via pip + venv
39
+
40
+ ```bash
41
+ cd packages/cli
42
+ python3 -m venv .venv
43
+ .venv/bin/pip install -e .
44
+ ln -sf $(pwd)/.venv/bin/sc ~/.local/bin/sc
45
+ ```
46
+
47
+ ### One-liner install script
48
+
49
+ ```bash
50
+ curl -fsSL https://raw.githubusercontent.com/P4ciuf/secryn/main/packages/cli/install.sh | bash
51
+ ```
52
+
53
+ Requires Python 3.10+.
54
+
55
+ ## Quick Start
56
+
57
+ ```bash
58
+ # Login to your Secryn instance
59
+ sc auth login --email user@example.com --password "your-password"
60
+
61
+ # Or use a custom API URL
62
+ sc --api-url https://api.secryn.xyz/api/v1 auth login
63
+ ```
64
+
65
+ The CLI stores configuration and session cookies in `~/.config/secryn/`.
66
+
67
+ ## Commands
68
+
69
+ ### Authentication
70
+
71
+ ```bash
72
+ sc auth login # Interactive login
73
+ sc auth login --email <email> --password <pw> # Non-interactive
74
+ sc auth logout # Logout and clear cookies
75
+ sc auth whoami # Show authenticated user
76
+ sc auth whoami --json # JSON output
77
+ ```
78
+
79
+ ### Projects
80
+
81
+ ```bash
82
+ sc projects list # List all projects
83
+ sc projects list --json # JSON output
84
+ sc projects create --name <name> # Create a project
85
+ sc projects create --name <name> # With description
86
+ --description <desc>
87
+ sc projects delete --id <id> # Delete (with confirmation)
88
+ sc projects delete --id <id> -f # Skip confirmation
89
+ ```
90
+
91
+ ### Secrets
92
+
93
+ ```bash
94
+ sc secrets list --project-id <id> # List secrets
95
+ sc secrets list --project-id <id> --json # JSON output
96
+ sc secrets get --id <id> # Show secret (masked)
97
+ sc secrets get --id <id> --show-value # Show in plain text
98
+ sc secrets get --id <id> --json # JSON output
99
+ sc secrets create --project-id <id> # Create a secret
100
+ --name <name> --value <value>
101
+ --notes <notes> # Optional notes
102
+ sc secrets update --id <id> # Partial update
103
+ --name <new> --value <new>
104
+ --notes <new>
105
+ sc secrets delete --id <id> # Delete secret
106
+ sc secrets delete --id <id> -f # Skip confirmation
107
+ sc secrets export --project-id <id> # Export as .env (stdout)
108
+ sc secrets export --project-id <id> # Export to file
109
+ -o .env
110
+ ```
111
+
112
+ ### API Keys
113
+
114
+ ```bash
115
+ sc api-keys list # List all keys
116
+ sc api-keys list --json # JSON output
117
+ sc api-keys create --name <name> # Create key (read+write)
118
+ sc api-keys create --name <name> # Create with specific permissions
119
+ --permissions read
120
+ sc api-keys delete --id <id> # Delete key
121
+ sc api-keys delete --id <id> -f # Skip confirmation
122
+ ```
123
+
124
+ ### User & Config
125
+
126
+ ```bash
127
+ sc user info # Show user profile
128
+ sc config # Show config paths and values
129
+ sc version # Show CLI version
130
+ ```
131
+
132
+ ## Global Options
133
+
134
+ | Option | Description |
135
+ | ----------------- | -------------------------------------------------------- |
136
+ | `--api-url <url>` | Override API base URL (default: `http://localhost:3000`) |
137
+ | `--json` | Output in JSON format (where supported) |
138
+ | `--force`, `-f` | Skip confirmation for destructive commands |
139
+ | `--help` | Show help for any command or subcommand |
140
+
141
+ ## Environment Variables
142
+
143
+ | Variable | Description |
144
+ | ---------------- | -------------------------- |
145
+ | `SECRYN_API_URL` | Alternative to `--api-url` |
146
+ | `SECRYN_HOME` | Custom config directory |
147
+
148
+ ## Configuration Files
149
+
150
+ The CLI stores its state in `~/.config/secryn/`:
151
+
152
+ | File | Content |
153
+ | -------------- | ------------------------------ |
154
+ | `config.json` | API URL, user ID, email |
155
+ | `cookies.json` | JWT session cookies (httpOnly) |
156
+
157
+ ## License
158
+
159
+ Apache 2.0 — see [LICENSE](https://github.com/P4ciuf/secryn/blob/main/LICENSE).
@@ -0,0 +1,145 @@
1
+ # Secryn CLI
2
+
3
+ [![PyPI](https://img.shields.io/pypi/v/secryn-cli)](https://pypi.org/project/secryn-cli/)
4
+ [![Python](https://img.shields.io/pypi/pyversions/secryn-cli.svg)](https://pypi.org/project/secryn-cli/)
5
+ [![License](https://img.shields.io/pypi/l/secryn-cli.svg)](https://github.com/P4ciuf/secryn/blob/main/LICENSE)
6
+
7
+ Command-line interface for [Secryn](https://secryn.xyz) — manage your secrets, projects, and API keys without leaving the terminal.
8
+
9
+ ## Installation
10
+
11
+ ### Via pipx (recommended)
12
+
13
+ ```bash
14
+ pipx install secryn-cli
15
+ ```
16
+
17
+ ### From source
18
+
19
+ ```bash
20
+ cd packages/cli
21
+ pipx install -e .
22
+ ```
23
+
24
+ ### Via pip + venv
25
+
26
+ ```bash
27
+ cd packages/cli
28
+ python3 -m venv .venv
29
+ .venv/bin/pip install -e .
30
+ ln -sf $(pwd)/.venv/bin/sc ~/.local/bin/sc
31
+ ```
32
+
33
+ ### One-liner install script
34
+
35
+ ```bash
36
+ curl -fsSL https://raw.githubusercontent.com/P4ciuf/secryn/main/packages/cli/install.sh | bash
37
+ ```
38
+
39
+ Requires Python 3.10+.
40
+
41
+ ## Quick Start
42
+
43
+ ```bash
44
+ # Login to your Secryn instance
45
+ sc auth login --email user@example.com --password "your-password"
46
+
47
+ # Or use a custom API URL
48
+ sc --api-url https://api.secryn.xyz/api/v1 auth login
49
+ ```
50
+
51
+ The CLI stores configuration and session cookies in `~/.config/secryn/`.
52
+
53
+ ## Commands
54
+
55
+ ### Authentication
56
+
57
+ ```bash
58
+ sc auth login # Interactive login
59
+ sc auth login --email <email> --password <pw> # Non-interactive
60
+ sc auth logout # Logout and clear cookies
61
+ sc auth whoami # Show authenticated user
62
+ sc auth whoami --json # JSON output
63
+ ```
64
+
65
+ ### Projects
66
+
67
+ ```bash
68
+ sc projects list # List all projects
69
+ sc projects list --json # JSON output
70
+ sc projects create --name <name> # Create a project
71
+ sc projects create --name <name> # With description
72
+ --description <desc>
73
+ sc projects delete --id <id> # Delete (with confirmation)
74
+ sc projects delete --id <id> -f # Skip confirmation
75
+ ```
76
+
77
+ ### Secrets
78
+
79
+ ```bash
80
+ sc secrets list --project-id <id> # List secrets
81
+ sc secrets list --project-id <id> --json # JSON output
82
+ sc secrets get --id <id> # Show secret (masked)
83
+ sc secrets get --id <id> --show-value # Show in plain text
84
+ sc secrets get --id <id> --json # JSON output
85
+ sc secrets create --project-id <id> # Create a secret
86
+ --name <name> --value <value>
87
+ --notes <notes> # Optional notes
88
+ sc secrets update --id <id> # Partial update
89
+ --name <new> --value <new>
90
+ --notes <new>
91
+ sc secrets delete --id <id> # Delete secret
92
+ sc secrets delete --id <id> -f # Skip confirmation
93
+ sc secrets export --project-id <id> # Export as .env (stdout)
94
+ sc secrets export --project-id <id> # Export to file
95
+ -o .env
96
+ ```
97
+
98
+ ### API Keys
99
+
100
+ ```bash
101
+ sc api-keys list # List all keys
102
+ sc api-keys list --json # JSON output
103
+ sc api-keys create --name <name> # Create key (read+write)
104
+ sc api-keys create --name <name> # Create with specific permissions
105
+ --permissions read
106
+ sc api-keys delete --id <id> # Delete key
107
+ sc api-keys delete --id <id> -f # Skip confirmation
108
+ ```
109
+
110
+ ### User & Config
111
+
112
+ ```bash
113
+ sc user info # Show user profile
114
+ sc config # Show config paths and values
115
+ sc version # Show CLI version
116
+ ```
117
+
118
+ ## Global Options
119
+
120
+ | Option | Description |
121
+ | ----------------- | -------------------------------------------------------- |
122
+ | `--api-url <url>` | Override API base URL (default: `http://localhost:3000`) |
123
+ | `--json` | Output in JSON format (where supported) |
124
+ | `--force`, `-f` | Skip confirmation for destructive commands |
125
+ | `--help` | Show help for any command or subcommand |
126
+
127
+ ## Environment Variables
128
+
129
+ | Variable | Description |
130
+ | ---------------- | -------------------------- |
131
+ | `SECRYN_API_URL` | Alternative to `--api-url` |
132
+ | `SECRYN_HOME` | Custom config directory |
133
+
134
+ ## Configuration Files
135
+
136
+ The CLI stores its state in `~/.config/secryn/`:
137
+
138
+ | File | Content |
139
+ | -------------- | ------------------------------ |
140
+ | `config.json` | API URL, user ID, email |
141
+ | `cookies.json` | JWT session cookies (httpOnly) |
142
+
143
+ ## License
144
+
145
+ Apache 2.0 — see [LICENSE](https://github.com/P4ciuf/secryn/blob/main/LICENSE).
@@ -1,7 +1,8 @@
1
1
  [project]
2
2
  name = "secryn-cli"
3
- version = "0.1.0"
3
+ version = "0.1.1"
4
4
  description = "Secryn CLI — manage your secrets from the terminal"
5
+ readme = "README.md"
5
6
  license = { text = "Apache-2.0" }
6
7
  authors = [{ name = "Secryn" }]
7
8
  requires-python = ">=3.10"
@@ -19,7 +20,7 @@ dev = [
19
20
  sc = "secryn_cli.cli:main"
20
21
 
21
22
  [project.urls]
22
- Repository = "https://github.com/secryn/secryn"
23
+ Repository = "https://github.com/P4ciuf/secryn"
23
24
 
24
25
  [build-system]
25
26
  requires = ["setuptools>=68"]
@@ -1,3 +1,3 @@
1
1
  """Secryn CLI — secrets management from your terminal."""
2
2
 
3
- __version__ = "0.1.0"
3
+ __version__ = "0.1.1"
@@ -1,3 +1,3 @@
1
1
  """Secryn CLI — secrets management from your terminal."""
2
2
 
3
- __version__ = "0.1.0"
3
+ __version__ = "0.1.1"
@@ -669,7 +669,7 @@ def main() -> None:
669
669
  try:
670
670
  cli.main(args=args, prog_name="sc", standalone_mode=False)
671
671
  except click.exceptions.Exit as e:
672
- exit_code = e.code if e.code is not None else 0
672
+ exit_code = e.exit_code if e.exit_code is not None else 0
673
673
  except click.ClickException as e:
674
674
  if isinstance(e, click.exceptions.NoArgsIsHelpError):
675
675
  click.echo(cli.get_help(click.Context(cli, info_name="sc")))
@@ -8,7 +8,7 @@ import json
8
8
  import os
9
9
  import platform
10
10
  from pathlib import Path
11
- from typing import Optional
11
+ from typing import Any, Optional
12
12
 
13
13
  APP_NAME = "secryn"
14
14
  API_BASE_PATH = "/api/v1"
@@ -65,7 +65,7 @@ class Config:
65
65
  self.api_url: str = f"http://localhost:3000{API_BASE_PATH}"
66
66
  self.user_id: Optional[str] = None
67
67
  self.user_email: Optional[str] = None
68
- self.version: str = "0.1.0"
68
+ self.version: str = "0.1.1"
69
69
 
70
70
  @property
71
71
  def user_agent(self) -> str:
@@ -124,7 +124,7 @@ def save_config(cfg: Config) -> None:
124
124
  config_path().chmod(0o600)
125
125
 
126
126
 
127
- def load_cookies() -> Optional[dict]:
127
+ def load_cookies() -> Optional[list[dict[str, Any]]]:
128
128
  """Load persisted session cookies from disk.
129
129
 
130
130
  Returns:
@@ -140,7 +140,7 @@ def load_cookies() -> Optional[dict]:
140
140
  return None
141
141
 
142
142
 
143
- def save_cookies(data: dict) -> None:
143
+ def save_cookies(data: list[dict[str, Any]]) -> None:
144
144
  """Persist session cookies to disk.
145
145
 
146
146
  Writes ``cookies.json`` with mode ``0600`` inside the config directory.
@@ -0,0 +1,159 @@
1
+ Metadata-Version: 2.4
2
+ Name: secryn-cli
3
+ Version: 0.1.1
4
+ Summary: Secryn CLI — manage your secrets from the terminal
5
+ Author: Secryn
6
+ License: Apache-2.0
7
+ Project-URL: Repository, https://github.com/P4ciuf/secryn
8
+ Requires-Python: >=3.10
9
+ Description-Content-Type: text/markdown
10
+ Requires-Dist: click>=8.0
11
+ Requires-Dist: requests>=2.28
12
+ Provides-Extra: dev
13
+ Requires-Dist: ruff>=0.11; extra == "dev"
14
+
15
+ # Secryn CLI
16
+
17
+ [![PyPI](https://img.shields.io/pypi/v/secryn-cli)](https://pypi.org/project/secryn-cli/)
18
+ [![Python](https://img.shields.io/pypi/pyversions/secryn-cli.svg)](https://pypi.org/project/secryn-cli/)
19
+ [![License](https://img.shields.io/pypi/l/secryn-cli.svg)](https://github.com/P4ciuf/secryn/blob/main/LICENSE)
20
+
21
+ Command-line interface for [Secryn](https://secryn.xyz) — manage your secrets, projects, and API keys without leaving the terminal.
22
+
23
+ ## Installation
24
+
25
+ ### Via pipx (recommended)
26
+
27
+ ```bash
28
+ pipx install secryn-cli
29
+ ```
30
+
31
+ ### From source
32
+
33
+ ```bash
34
+ cd packages/cli
35
+ pipx install -e .
36
+ ```
37
+
38
+ ### Via pip + venv
39
+
40
+ ```bash
41
+ cd packages/cli
42
+ python3 -m venv .venv
43
+ .venv/bin/pip install -e .
44
+ ln -sf $(pwd)/.venv/bin/sc ~/.local/bin/sc
45
+ ```
46
+
47
+ ### One-liner install script
48
+
49
+ ```bash
50
+ curl -fsSL https://raw.githubusercontent.com/P4ciuf/secryn/main/packages/cli/install.sh | bash
51
+ ```
52
+
53
+ Requires Python 3.10+.
54
+
55
+ ## Quick Start
56
+
57
+ ```bash
58
+ # Login to your Secryn instance
59
+ sc auth login --email user@example.com --password "your-password"
60
+
61
+ # Or use a custom API URL
62
+ sc --api-url https://api.secryn.xyz/api/v1 auth login
63
+ ```
64
+
65
+ The CLI stores configuration and session cookies in `~/.config/secryn/`.
66
+
67
+ ## Commands
68
+
69
+ ### Authentication
70
+
71
+ ```bash
72
+ sc auth login # Interactive login
73
+ sc auth login --email <email> --password <pw> # Non-interactive
74
+ sc auth logout # Logout and clear cookies
75
+ sc auth whoami # Show authenticated user
76
+ sc auth whoami --json # JSON output
77
+ ```
78
+
79
+ ### Projects
80
+
81
+ ```bash
82
+ sc projects list # List all projects
83
+ sc projects list --json # JSON output
84
+ sc projects create --name <name> # Create a project
85
+ sc projects create --name <name> # With description
86
+ --description <desc>
87
+ sc projects delete --id <id> # Delete (with confirmation)
88
+ sc projects delete --id <id> -f # Skip confirmation
89
+ ```
90
+
91
+ ### Secrets
92
+
93
+ ```bash
94
+ sc secrets list --project-id <id> # List secrets
95
+ sc secrets list --project-id <id> --json # JSON output
96
+ sc secrets get --id <id> # Show secret (masked)
97
+ sc secrets get --id <id> --show-value # Show in plain text
98
+ sc secrets get --id <id> --json # JSON output
99
+ sc secrets create --project-id <id> # Create a secret
100
+ --name <name> --value <value>
101
+ --notes <notes> # Optional notes
102
+ sc secrets update --id <id> # Partial update
103
+ --name <new> --value <new>
104
+ --notes <new>
105
+ sc secrets delete --id <id> # Delete secret
106
+ sc secrets delete --id <id> -f # Skip confirmation
107
+ sc secrets export --project-id <id> # Export as .env (stdout)
108
+ sc secrets export --project-id <id> # Export to file
109
+ -o .env
110
+ ```
111
+
112
+ ### API Keys
113
+
114
+ ```bash
115
+ sc api-keys list # List all keys
116
+ sc api-keys list --json # JSON output
117
+ sc api-keys create --name <name> # Create key (read+write)
118
+ sc api-keys create --name <name> # Create with specific permissions
119
+ --permissions read
120
+ sc api-keys delete --id <id> # Delete key
121
+ sc api-keys delete --id <id> -f # Skip confirmation
122
+ ```
123
+
124
+ ### User & Config
125
+
126
+ ```bash
127
+ sc user info # Show user profile
128
+ sc config # Show config paths and values
129
+ sc version # Show CLI version
130
+ ```
131
+
132
+ ## Global Options
133
+
134
+ | Option | Description |
135
+ | ----------------- | -------------------------------------------------------- |
136
+ | `--api-url <url>` | Override API base URL (default: `http://localhost:3000`) |
137
+ | `--json` | Output in JSON format (where supported) |
138
+ | `--force`, `-f` | Skip confirmation for destructive commands |
139
+ | `--help` | Show help for any command or subcommand |
140
+
141
+ ## Environment Variables
142
+
143
+ | Variable | Description |
144
+ | ---------------- | -------------------------- |
145
+ | `SECRYN_API_URL` | Alternative to `--api-url` |
146
+ | `SECRYN_HOME` | Custom config directory |
147
+
148
+ ## Configuration Files
149
+
150
+ The CLI stores its state in `~/.config/secryn/`:
151
+
152
+ | File | Content |
153
+ | -------------- | ------------------------------ |
154
+ | `config.json` | API URL, user ID, email |
155
+ | `cookies.json` | JWT session cookies (httpOnly) |
156
+
157
+ ## License
158
+
159
+ Apache 2.0 — see [LICENSE](https://github.com/P4ciuf/secryn/blob/main/LICENSE).
@@ -1,3 +1,4 @@
1
+ README.md
1
2
  pyproject.toml
2
3
  secryn_cli/__init__.py
3
4
  secryn_cli/__main__.py
secryn_cli-0.1.0/PKG-INFO DELETED
@@ -1,12 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: secryn-cli
3
- Version: 0.1.0
4
- Summary: Secryn CLI — manage your secrets from the terminal
5
- Author: Secryn
6
- License: Apache-2.0
7
- Project-URL: Repository, https://github.com/secryn/secryn
8
- Requires-Python: >=3.10
9
- Requires-Dist: click>=8.0
10
- Requires-Dist: requests>=2.28
11
- Provides-Extra: dev
12
- Requires-Dist: ruff>=0.11; extra == "dev"
@@ -1,12 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: secryn-cli
3
- Version: 0.1.0
4
- Summary: Secryn CLI — manage your secrets from the terminal
5
- Author: Secryn
6
- License: Apache-2.0
7
- Project-URL: Repository, https://github.com/secryn/secryn
8
- Requires-Python: >=3.10
9
- Requires-Dist: click>=8.0
10
- Requires-Dist: requests>=2.28
11
- Provides-Extra: dev
12
- Requires-Dist: ruff>=0.11; extra == "dev"
File without changes