tabby-profile-share 0.1.3 → 0.1.5

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.
package/CHANGELOG.md CHANGED
@@ -2,22 +2,32 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
- ## 0.1.3 — Installation compatibility fix (pending npm publication)
5
+ ## 0.1.5 — npm README and screenshot updates (2026-10-24)
6
6
 
7
- - Fixed `ERESOLVE` on Tabby 1.0.235 when other installed plugins declare incompatible Angular peer dependencies (for example, `tabby-save-output@3.1.0` requires Angular 4).
8
- - Removed *runtime peerDependencies* for Angular/Tabby host modules. These modules are provided by Tabby's own runtime; Angular 15 and Tabby API packages remain development-only dependencies for compilation.
9
- - Added a package integration test using Tabby's npm Arborist installer with the legacy plugin already installed. Export/import features are unchanged.
7
+ - Republish the current English and Brazilian Portuguese documentation, including the project tagline and four authentic screenshots captured with fictional SSH profiles.
8
+ - Use absolute raw GitHub URLs for screenshot assets so the npm package page can render images even though image binaries are not bundled in the npm tarball.
9
+ - Keep the prior v0.1.4 plugin functionality, compatibility, and dependencies unchanged.
10
10
 
11
+ ## 0.1.4 — Documentation, discovery and GitHub release (2026-10-24)
11
12
 
13
+ - Improve npm package description and focused discovery keywords for SSH profile export/import.
14
+ - Refresh English and Brazilian Portuguese READMEs with public npm install instructions, badges and release links.
15
+ - Remove maintainer-only GitHub Actions publishing instructions from both READMEs (the publishing guide remains under `docs/`).
16
+ - Add a fully synthetic Tabby YAML config with nested groups and 16 fake SSH profiles for screenshots, plus a privacy-focused capture guide.
17
+ - No changes to the plugin's SSH import/export behavior or runtime dependencies.
12
18
 
13
- - Open-source release preparation: MIT license, public documentation, security policy and contribution guidelines.
14
- - npm package metadata and release checklists.
19
+ ## 0.1.3 — Installation compatibility fix (2026-10-24)
15
20
 
16
- ## 0.1.2 — Prepared, not yet published to npm
21
+ - Fixed npm `ERESOLVE` on Tabby 1.0.235 when other installed plugins declare incompatible Angular peer dependencies, such as `tabby-save-output@3.1.0`.
22
+ - Removed runtime `peerDependencies` for Angular and Tabby host modules; development dependencies remain for compilation.
23
+ - Added an integration test using Tabby's npm Arborist installer with the legacy plugin already installed.
24
+ - First successful installation via the official Tabby plugin manager was confirmed by an early tester.
17
25
 
18
- - Bump version for first public preview.
19
- - Review Git history and document Angular 15 compatibility/security advisory boundaries.
20
- - Add complete development audit visibility and npm name lookup to CI.
26
+ ## 0.1.2 — First npm public preview (2026-10-24)
27
+
28
+ - Published initial public npm version with MIT license and documentation.
29
+ - Reviewed Git history and documented Angular 15 compatibility/security advisory boundaries.
30
+ - Added build audit visibility and npm lookup in CI.
21
31
 
22
32
  ## 0.1.1 — Preview (2026-10-24)
23
33
 
@@ -27,7 +37,7 @@
27
37
 
28
38
  ## 0.1.0 — Development preview (2026-10-24)
29
39
 
30
- - Standalone settings plugin for Tabby.
40
+ - Standalone settings plugin for official Tabby.
31
41
  - Selective SSH export with folder hierarchy and explicit username opt-in.
32
- - JSON sanitizer, append-only import and username prompt.
33
- - Unit tests for secrets, format validation and ID remapping.
42
+ - Allowlist-based JSON sanitizer, append-only import and username prompt.
43
+ - Unit tests for secret exclusions, format validation and ID remapping.
package/README.md CHANGED
@@ -1,15 +1,21 @@
1
1
  # Tabby Profile Share
2
2
 
3
+ **Share Tabby SSH profiles, not SSH credentials.**
4
+
3
5
  **Share SSH profiles and their folder hierarchy safely with your team.**
4
6
 
5
7
  [![CI](https://github.com/gugahartmann/Tabby_Profile_Share/actions/workflows/test.yml/badge.svg)](https://github.com/gugahartmann/Tabby_Profile_Share/actions/workflows/test.yml)
6
8
  [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
9
+ [![npm version](https://img.shields.io/npm/v/tabby-profile-share.svg)](https://www.npmjs.com/package/tabby-profile-share)
10
+ [![npm downloads](https://img.shields.io/npm/dm/tabby-profile-share.svg)](https://www.npmjs.com/package/tabby-profile-share)
7
11
 
8
12
  [Português (Brasil)](README.pt-BR.md)
9
13
 
10
14
  Tabby Profile Share is an **independent, community-maintained plugin** for [Tabby by Eugeny](https://github.com/Eugeny/tabby). It does **not** modify Tabby, require the Tabby Performance fork, or have any affiliation with or endorsement from the Tabby maintainers.
11
15
 
12
- > **Status:** Preview 0.1.3 (unpublished) — manual installation and SSH export confirmed by an early tester. Wider compatibility, import scenarios and public npm publication remain separate validation steps. Do not assume all Tabby versions have been tested.
16
+ **Available on npm:** [tabby-profile-share](https://www.npmjs.com/package/tabby-profile-share) · [GitHub releases](https://github.com/gugahartmann/Tabby_Profile_Share/releases) · [Report an issue](https://github.com/gugahartmann/Tabby_Profile_Share/issues/new/choose).
17
+
18
+ Tested with the official Tabby **1.0.235** plugin manager on Windows for installation; broader host versions and end-to-end import flows require continued community testing.
13
19
 
14
20
  ## Features
15
21
 
@@ -29,19 +35,17 @@ The file contains **no stored credentials**, private key paths or login scripts.
29
35
 
30
36
  ## Installation compatibility
31
37
 
32
- Version 0.1.3 removes runtime Angular/Tabby peer requirements to prevent npm `ERESOLVE` when legacy plugins (e.g., `tabby-save-output@3.1.0` with Angular 4) are present. Tabby itself supplies Angular and the Tabby APIs when loading plugins. This change does not remove required development dependencies from the project, and does not fix security issues in legacy plugins.
38
+ Versions 0.1.3+ remove runtime Angular/Tabby peer requirements to prevent npm `ERESOLVE` when legacy plugins (e.g., `tabby-save-output@3.1.0` with Angular 4) are present. Tabby itself supplies Angular and the Tabby APIs when loading plugins. This change does not remove required development dependencies from the project, and does not fix security issues in legacy plugins.
33
39
 
34
40
  ## Install
35
41
 
36
- ### Once the package is available on npm
37
-
38
- Open **Tabby → Settings → Plugins**, search for **profile-share**, install `tabby-profile-share`, and restart Tabby if requested. Tabby discovers community plugins distributed with the `tabby-plugin` npm keyword.
42
+ Open **Tabby → Settings → Plugins → Available**, search for **profile-share**, select `tabby-profile-share`, click **Get**, and restart Tabby when prompted. The plugin is distributed through [npm](https://www.npmjs.com/package/tabby-profile-share) and does **not** require cloning this repository. The Tabby search ranking may place new plugins near the bottom of results. Once installed, open **Settings → Profile Sharing**.
39
43
 
40
- **Not yet published to npm:** Until the package appears in npm search, use the preview instructions below. Publishing status should not be inferred from this README.
44
+ If you prefer a compiled, standalone package, check [GitHub Releases](https://github.com/gugahartmann/Tabby_Profile_Share/releases). The manual Windows option remains available below.
41
45
 
42
- ### Preview: manual install on Windows
46
+ ### Alternative: manual install on Windows
43
47
 
44
- 1. Download the latest compiled ZIP from [Actions](https://github.com/gugahartmann/Tabby_Profile_Share/actions/workflows/test.yml) (or a future GitHub release).
48
+ 1. Download the **compiled plugin ZIP** from [Releases](https://github.com/gugahartmann/Tabby_Profile_Share/releases) or [Actions](https://github.com/gugahartmann/Tabby_Profile_Share/actions/workflows/test.yml).
45
49
  2. The Actions artifact contains another ZIP with a top-level directory called `tabby-profile-share`. Extract that directory.
46
50
  3. Close Tabby fully, including the tray icon, and copy the folder to:
47
51
  `%APPDATA%\tabby\plugins\node_modules\tabby-profile-share\`
@@ -50,6 +54,34 @@ Open **Tabby → Settings → Plugins**, search for **profile-share**, install `
50
54
 
51
55
  Do not install the directory one level too high, or nest `tabby-profile-share` twice.
52
56
 
57
+ ## Screenshots
58
+
59
+ These screenshots were taken from **Tabby using [synthetic demo SSH profiles](examples/demo-profiles.yaml)**. No real infrastructure, passwords or private keys appear in the examples.
60
+
61
+ ### 1. Select folders, devices and shared usernames
62
+
63
+ Choose only the folders and devices to export. Username sharing is **opt-in**: accounts are unchecked by default, and in this example only `noc-demo` is selected.
64
+
65
+ ![Tabby Profile Share export screen with nested SSH folders, selected profiles, and SSH username opt-in checkboxes](https://raw.githubusercontent.com/gugahartmann/Tabby_Profile_Share/main/docs/screenshots/export-overview.png)
66
+
67
+ ### 2. Review the import before creating profiles
68
+
69
+ Import a `.tabby-profiles.json` package and review the number of new folders, new SSH profiles and missing usernames. Imported entries are created as new items; existing entries are not overwritten.
70
+
71
+ ![Tabby Profile Share import preview showing two new folders, four new profiles and two profiles without usernames](https://raw.githubusercontent.com/gugahartmann/Tabby_Profile_Share/main/docs/screenshots/import-overview.png)
72
+
73
+ ### 3. Supply missing SSH usernames
74
+
75
+ When imported profiles lack usernames, Tabby Profile Share asks for a shared SSH username and shows example devices. The field can be left empty.
76
+
77
+ ![SSH username prompt showing two fictional devices requiring a username during import](https://raw.githubusercontent.com/gugahartmann/Tabby_Profile_Share/main/docs/screenshots/import-username-prompt.png)
78
+
79
+ ### 4. Inspect the portable JSON export
80
+
81
+ The export contains versioned `groups` and `profiles` data, with sanitized connection options. It intentionally excludes passwords, private key files and login scripts.
82
+
83
+ ![Sample Tabby Profile Share JSON export showing folder and SSH profile structure with fictional hosts](https://raw.githubusercontent.com/gugahartmann/Tabby_Profile_Share/main/docs/screenshots/exported-json-example.png)
84
+
53
85
  ## Use
54
86
 
55
87
  **Export:** Select the folder tree, review the list of usernames (unchecked by default), explicitly enable only shared/team usernames, then click **Export**. Inspect the resulting JSON before distributing it.
@@ -58,12 +90,6 @@ Do not install the directory one level too high, or nest `tabby-profile-share` t
58
90
 
59
91
  See the [functional specification](docs/SPEC.md) for detailed behavior. Import has automated unit coverage, but full UI regression across Tabby releases remains on the roadmap.
60
92
 
61
- ## Publish via GitHub Actions (no local Git or Node.js required)
62
-
63
- Maintainers can prepare npm releases entirely in the browser with the **Stage npm package** workflow. The first release uses a temporary npm stage-only token in the repository secret `NPM_STAGE_TOKEN`; subsequent releases use npm Trusted Publishing (OIDC) with no permanent token. Every release is reviewed and approved on npmjs.com with 2FA before it goes live.
64
-
65
- See the [complete step-by-step npm GitHub Actions guide](docs/PUBLISHING.md). Publishing is manual and never triggered by pushes or pull requests.
66
-
67
93
  ## Development
68
94
 
69
95
  Requirements: Node.js 22 and npm.
@@ -79,7 +105,7 @@ npm pack --dry-run
79
105
 
80
106
  The production entry point is `dist/index.js`. Angular and Tabby dependencies are external to the generated bundle, loaded by the host Tabby application.
81
107
 
82
- The repository includes CI for unit tests, compilation and packaging. Before a public release, verify the packaged files, audit dependencies, and test import twice on a disposable Tabby configuration.
108
+ The repository includes CI for unit tests, compilation, packaging, and compatibility with legacy Tabby plugins. Use a disposable Tabby configuration when testing imports. Project release procedures are documented in [docs/PUBLISHING.md](docs/PUBLISHING.md).
83
109
 
84
110
  ## Feedback and issue reports
85
111
 
package/README.pt-BR.md CHANGED
@@ -1,15 +1,21 @@
1
1
  # Tabby Profile Share
2
2
 
3
+ **Compartilhe perfis SSH do Tabby, não suas credenciais.**
4
+
3
5
  **Compartilhe perfis SSH e a hierarquia de pastas do Tabby com segurança.**
4
6
 
5
7
  [![CI](https://github.com/gugahartmann/Tabby_Profile_Share/actions/workflows/test.yml/badge.svg)](https://github.com/gugahartmann/Tabby_Profile_Share/actions/workflows/test.yml)
6
8
  [![Licença MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
9
+ [![Versão npm](https://img.shields.io/npm/v/tabby-profile-share.svg)](https://www.npmjs.com/package/tabby-profile-share)
10
+ [![Downloads npm](https://img.shields.io/npm/dm/tabby-profile-share.svg)](https://www.npmjs.com/package/tabby-profile-share)
7
11
 
8
12
  [English](README.md)
9
13
 
10
14
  O **Tabby Profile Share** é um plugin **independente, mantido pela comunidade**, compatível com o [Tabby do Eugeny](https://github.com/Eugeny/tabby). Não exige o fork Tabby Performance nem modifica o código original do Tabby.
11
15
 
12
- > **Estado:** Preview 0.1.3 (ainda não publicada). A instalação manual e a exportação foram confirmadas em teste inicial. A compatibilidade entre versões e todos os fluxos de importação ainda precisam de testes adicionais. O pacote ainda não foi publicado no npm.
16
+ **Publicado no npm:** [tabby-profile-share](https://www.npmjs.com/package/tabby-profile-share) · [Releases no GitHub](https://github.com/gugahartmann/Tabby_Profile_Share/releases) · [Abrir issue](https://github.com/gugahartmann/Tabby_Profile_Share/issues/new/choose).
17
+
18
+ Instalação via gerenciador de plugins confirmada no Tabby oficial **1.0.235**, Windows. A compatibilidade com outras versões e cenários completos de importação continua em validação.
13
19
 
14
20
  ## Funcionalidades
15
21
 
@@ -25,19 +31,17 @@ O **Tabby Profile Share** é um plugin **independente, mantido pela comunidade**
25
31
 
26
32
  ## Compatibilidade da instalação
27
33
 
28
- A versão 0.1.3 remove as restrições de `peerDependencies` de execução para Angular e APIs do Tabby. Isso evita o erro `ERESOLVE` causado por plugins legados como `tabby-save-output@3.1.0` (Angular 4), pois o Tabby já oferece Angular e seus módulos internamente. As dependências de desenvolvimento continuam presentes para compilar e testar o código. Nenhuma configuração ou credencial SSH é alterada.
34
+ A partir da versão 0.1.3, o plugin remove as restrições de `peerDependencies` de execução para Angular e APIs do Tabby. Isso evita o erro `ERESOLVE` causado por plugins legados como `tabby-save-output@3.1.0` (Angular 4), pois o Tabby já oferece Angular e seus módulos internamente. As dependências de desenvolvimento continuam presentes para compilar e testar o código. Nenhuma configuração ou credencial SSH é alterada.
29
35
 
30
36
  ## Instalação
31
37
 
32
- ### Pelo próprio Tabby (após publicação no npm)
33
-
34
- Abra **Settings → Plugins**, procure **profile-share** / `tabby-profile-share`, instale o pacote e reinicie, se solicitado.
38
+ No Tabby, abra **Settings → Plugins → Available**, pesquise **profile-share**, encontre `tabby-profile-share`, clique em **Get** e reinicie se solicitado. O plugin está no [npm](https://www.npmjs.com/package/tabby-profile-share), sem necessidade de instalar Git ou compilar manualmente. Por conta do ranking da busca, plugins recentes podem aparecer no final da lista. Depois, abra **Settings → Profile Sharing**.
35
39
 
36
- O plugin ainda **não está publicado no npm**. Até lá, use o pacote compilado:
40
+ Também oferecemos arquivos compilados em [Releases](https://github.com/gugahartmann/Tabby_Profile_Share/releases) para instalação manual.
37
41
 
38
42
  ### Instalação manual — Windows
39
43
 
40
- 1. Acesse [GitHub Actions](https://github.com/gugahartmann/Tabby_Profile_Share/actions/workflows/test.yml), escolha uma execução aprovada e baixe o ZIP do plugin.
44
+ 1. Baixe o ZIP compilado em [GitHub Releases](https://github.com/gugahartmann/Tabby_Profile_Share/releases) ou em [GitHub Actions](https://github.com/gugahartmann/Tabby_Profile_Share/actions/workflows/test.yml).
41
45
  2. Extraia a pasta `tabby-profile-share` que está dentro do ZIP do pacote.
42
46
  3. Feche completamente o Tabby, inclusive a bandeja.
43
47
  4. Copie para:
@@ -47,6 +51,34 @@ O plugin ainda **não está publicado no npm**. Até lá, use o pacote compilado
47
51
 
48
52
  Evite colocar a pasta diretamente em `plugins` ou aninhar duas pastas `tabby-profile-share`.
49
53
 
54
+ ## Capturas de tela
55
+
56
+ Estas imagens foram capturadas no **Tabby com [perfis SSH demonstrativos e fictícios](examples/demo-profiles.yaml)**, sem infraestrutura real, senhas ou chaves privadas.
57
+
58
+ ### 1. Seleção de pastas, equipamentos e usuários compartilhados
59
+
60
+ Escolha quais pastas e equipamentos serão exportados. O compartilhamento de usernames é **opcional e desmarcado por padrão**. Neste exemplo, apenas o usuário `noc-demo` foi selecionado.
61
+
62
+ ![Tela de exportação do Tabby Profile Share com pastas SSH, equipamentos e seleção de usuários compartilhados](https://raw.githubusercontent.com/gugahartmann/Tabby_Profile_Share/main/docs/screenshots/export-overview.png)
63
+
64
+ ### 2. Prévia dos dados a importar
65
+
66
+ Carregue um arquivo `.tabby-profiles.json` e confira a quantidade de novas pastas, perfis SSH e equipamentos sem username. Os itens importados são novos e não substituem os já cadastrados.
67
+
68
+ ![Prévia da importação com duas novas pastas, quatro perfis e dois equipamentos sem username](https://raw.githubusercontent.com/gugahartmann/Tabby_Profile_Share/main/docs/screenshots/import-overview.png)
69
+
70
+ ### 3. Preenchimento de usernames ausentes
71
+
72
+ Quando os perfis importados estão sem usuário SSH, o plugin solicita um username, exibindo exemplos dos equipamentos afetados. É possível continuar sem preencher.
73
+
74
+ ![Solicitação de username SSH para dois equipamentos demonstrativos durante a importação](https://raw.githubusercontent.com/gugahartmann/Tabby_Profile_Share/main/docs/screenshots/import-username-prompt.png)
75
+
76
+ ### 4. Estrutura do JSON exportado
77
+
78
+ O arquivo inclui `groups` e `profiles` com versão de formato e opções SSH sanitizadas. Senhas, chaves privadas e scripts de login ficam de fora.
79
+
80
+ ![Exemplo de JSON exportado com estrutura de grupos e perfis SSH fictícios](https://raw.githubusercontent.com/gugahartmann/Tabby_Profile_Share/main/docs/screenshots/exported-json-example.png)
81
+
50
82
  ## Como utilizar
51
83
 
52
84
  **Exportação:** marque as pastas e equipamentos que deseja compartilhar, selecione apenas os usuários SSH de equipe que devem acompanhar o arquivo e clique em **Export**.
@@ -59,12 +91,6 @@ Acesse [Nova issue](https://github.com/gugahartmann/Tabby_Profile_Share/issues/n
59
91
 
60
92
  **Nunca anexe exports reais, endereços IP internos, nomes de equipamentos de produção, chaves, senhas ou logs sem anonimização.** Para falhas de segurança, siga [SECURITY.md](SECURITY.md).
61
93
 
62
- ## Publicação pelo GitHub Actions (sem Git ou Node.js local)
63
-
64
- O mantenedor pode publicar usando somente o navegador: **GitHub → Actions → Stage npm package**. A primeira publicação exige um token npm temporário de **stage only** armazenado no Secret `NPM_STAGE_TOKEN`. As próximas versões usam Trusted Publishing (OIDC) sem token permanente. Cada versão passa por aprovação na interface do npm com 2FA.
65
-
66
- Confira o [guia completo de publicação via GitHub Actions](docs/PUBLISHING.md). Nenhuma publicação é disparada automaticamente por commits ou PRs.
67
-
68
94
  ## Desenvolvimento
69
95
 
70
96
  ```bash
package/package.json CHANGED
@@ -1,12 +1,20 @@
1
1
  {
2
2
  "name": "tabby-profile-share",
3
- "version": "0.1.3",
4
- "description": "Safe SSH profile sharing plugin for official Eugeny Tabby",
3
+ "version": "0.1.5",
4
+ "description": "Export, import and share SSH profiles and folder hierarchies in Tabby Terminal without sharing credentials or private keys.",
5
5
  "keywords": [
6
6
  "tabby-plugin",
7
7
  "tabby",
8
+ "tabby-terminal",
9
+ "terminal",
8
10
  "ssh",
9
- "profiles"
11
+ "ssh-profiles",
12
+ "ssh-connections",
13
+ "profile-sharing",
14
+ "profile-export",
15
+ "profile-import",
16
+ "connection-manager",
17
+ "ssh-profile-manager"
10
18
  ],
11
19
  "main": "dist/index.js",
12
20
  "types": "dist/index.d.ts",