nvoi 0.1.8 → 0.2.1

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.
Files changed (122) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -5
  3. data/Gemfile.lock +17 -8
  4. data/Rakefile +1 -1
  5. data/_TODO-rails-example.md +816 -0
  6. data/_TODO-rails-optimization.md +433 -0
  7. data/doc/config-schema.yaml +12 -0
  8. data/examples/apex-wildcard/deploy.yml +1 -0
  9. data/examples/golang-postgres-multi/deploy.yml +1 -0
  10. data/examples/postgres-multi/deploy.yml +1 -0
  11. data/examples/postgres-single/deploy.yml +1 -0
  12. data/examples/rails-single/deploy.yml +1 -0
  13. data/lib/nvoi/cli/config/command.rb +46 -41
  14. data/lib/nvoi/cli/credentials/edit/command.rb +24 -20
  15. data/lib/nvoi/cli/credentials/show/command.rb +1 -1
  16. data/lib/nvoi/cli/db/command.rb +10 -10
  17. data/lib/nvoi/cli/delete/command.rb +2 -2
  18. data/lib/nvoi/cli/deploy/command.rb +2 -2
  19. data/lib/nvoi/cli/deploy/steps/build_image.rb +2 -1
  20. data/lib/nvoi/cli/deploy/steps/configure_tunnel.rb +2 -2
  21. data/lib/nvoi/cli/deploy/steps/deploy_service.rb +7 -4
  22. data/lib/nvoi/cli/deploy/steps/provision_server.rb +1 -1
  23. data/lib/nvoi/cli/deploy/steps/provision_volume.rb +1 -1
  24. data/lib/nvoi/cli/exec/command.rb +3 -3
  25. data/lib/nvoi/cli/logs/command.rb +2 -2
  26. data/lib/nvoi/cli/onboard/command.rb +176 -622
  27. data/lib/nvoi/cli/onboard/steps/app.rb +108 -0
  28. data/lib/nvoi/cli/onboard/steps/app_name.rb +26 -0
  29. data/lib/nvoi/cli/onboard/steps/compute.rb +186 -0
  30. data/lib/nvoi/cli/onboard/steps/database.rb +97 -0
  31. data/lib/nvoi/cli/onboard/steps/domain.rb +48 -0
  32. data/lib/nvoi/cli/onboard/steps/env.rb +67 -0
  33. data/lib/nvoi/cli/onboard/ui.rb +84 -0
  34. data/lib/nvoi/cli/unlock/command.rb +2 -2
  35. data/lib/nvoi/cli.rb +2 -33
  36. data/lib/nvoi/configuration/app_service.rb +54 -0
  37. data/lib/nvoi/configuration/application.rb +44 -0
  38. data/lib/nvoi/configuration/builder.rb +420 -0
  39. data/lib/nvoi/configuration/database.rb +56 -0
  40. data/lib/nvoi/configuration/deploy.rb +15 -0
  41. data/lib/nvoi/{objects/service_spec.rb → configuration/deployment.rb} +4 -3
  42. data/lib/nvoi/{objects/config_override.rb → configuration/override.rb} +4 -4
  43. data/lib/nvoi/configuration/providers.rb +81 -0
  44. data/lib/nvoi/configuration/result.rb +43 -0
  45. data/lib/nvoi/configuration/root.rb +252 -0
  46. data/lib/nvoi/configuration/server.rb +39 -0
  47. data/lib/nvoi/configuration/service.rb +51 -0
  48. data/lib/nvoi/configuration/ssh_key.rb +16 -0
  49. data/lib/nvoi/external/cloud/aws.rb +26 -16
  50. data/lib/nvoi/external/cloud/hetzner.rb +40 -25
  51. data/lib/nvoi/external/cloud/scaleway.rb +10 -8
  52. data/lib/nvoi/external/cloud/types.rb +42 -0
  53. data/lib/nvoi/external/database/mysql.rb +1 -1
  54. data/lib/nvoi/external/database/postgres.rb +1 -1
  55. data/lib/nvoi/external/database/provider.rb +1 -1
  56. data/lib/nvoi/external/database/sqlite.rb +1 -1
  57. data/lib/nvoi/external/database/types.rb +55 -0
  58. data/lib/nvoi/external/dns/cloudflare.rb +11 -11
  59. data/lib/nvoi/external/dns/types.rb +24 -0
  60. data/lib/nvoi/utils/config_loader.rb +12 -12
  61. data/lib/nvoi/utils/credential_store.rb +4 -4
  62. data/lib/nvoi/utils/env_resolver.rb +3 -3
  63. data/lib/nvoi/utils/namer.rb +8 -3
  64. data/lib/nvoi/utils/presence.rb +23 -0
  65. data/lib/nvoi/version.rb +1 -1
  66. data/lib/nvoi.rb +2 -17
  67. metadata +98 -59
  68. data/.claude/todo/refactor/00-overview.md +0 -171
  69. data/.claude/todo/refactor/01-objects.md +0 -96
  70. data/.claude/todo/refactor/02-utils.md +0 -143
  71. data/.claude/todo/refactor/03-external-cloud.md +0 -164
  72. data/.claude/todo/refactor/04-external-dns.md +0 -104
  73. data/.claude/todo/refactor/05-external.md +0 -133
  74. data/.claude/todo/refactor/06-cli.md +0 -123
  75. data/.claude/todo/refactor/07-cli-deploy-command.md +0 -177
  76. data/.claude/todo/refactor/08-cli-deploy-steps.md +0 -201
  77. data/.claude/todo/refactor/09-cli-delete-command.md +0 -169
  78. data/.claude/todo/refactor/10-cli-exec-command.md +0 -157
  79. data/.claude/todo/refactor/11-cli-credentials-command.md +0 -190
  80. data/.claude/todo/refactor/12-cli-db-command.md +0 -128
  81. data/.claude/todo/refactor/_target.md +0 -79
  82. data/.claude/todo/refactor-execution/00-entrypoint.md +0 -49
  83. data/.claude/todo/refactor-execution/01-objects.md +0 -42
  84. data/.claude/todo/refactor-execution/02-utils.md +0 -41
  85. data/.claude/todo/refactor-execution/03-external-cloud.md +0 -38
  86. data/.claude/todo/refactor-execution/04-external-dns.md +0 -35
  87. data/.claude/todo/refactor-execution/05-external-other.md +0 -46
  88. data/.claude/todo/refactor-execution/06-cli-deploy.md +0 -45
  89. data/.claude/todo/refactor-execution/07-cli-delete.md +0 -43
  90. data/.claude/todo/refactor-execution/08-cli-exec.md +0 -30
  91. data/.claude/todo/refactor-execution/09-cli-credentials.md +0 -34
  92. data/.claude/todo/refactor-execution/10-cli-db.md +0 -31
  93. data/.claude/todo/refactor-execution/11-cli-router.md +0 -44
  94. data/.claude/todo/refactor-execution/12-cleanup.md +0 -120
  95. data/.claude/todo/refactor-execution/_monitoring-strategy.md +0 -126
  96. data/.claude/todo/scaleway.impl.md +0 -644
  97. data/.claude/todo/scaleway.reference.md +0 -520
  98. data/.claude/todos/buckets.md +0 -41
  99. data/.claude/todos.md +0 -550
  100. data/Makefile +0 -26
  101. data/ingest +0 -0
  102. data/lib/nvoi/config_api/actions/app.rb +0 -53
  103. data/lib/nvoi/config_api/actions/compute_provider.rb +0 -55
  104. data/lib/nvoi/config_api/actions/database.rb +0 -70
  105. data/lib/nvoi/config_api/actions/domain_provider.rb +0 -40
  106. data/lib/nvoi/config_api/actions/env.rb +0 -32
  107. data/lib/nvoi/config_api/actions/init.rb +0 -67
  108. data/lib/nvoi/config_api/actions/secret.rb +0 -32
  109. data/lib/nvoi/config_api/actions/server.rb +0 -66
  110. data/lib/nvoi/config_api/actions/service.rb +0 -52
  111. data/lib/nvoi/config_api/actions/volume.rb +0 -40
  112. data/lib/nvoi/config_api/base.rb +0 -38
  113. data/lib/nvoi/config_api/result.rb +0 -26
  114. data/lib/nvoi/config_api.rb +0 -93
  115. data/lib/nvoi/objects/configuration.rb +0 -483
  116. data/lib/nvoi/objects/database.rb +0 -56
  117. data/lib/nvoi/objects/dns.rb +0 -14
  118. data/lib/nvoi/objects/firewall.rb +0 -11
  119. data/lib/nvoi/objects/network.rb +0 -11
  120. data/lib/nvoi/objects/server.rb +0 -14
  121. data/lib/nvoi/objects/tunnel.rb +0 -14
  122. data/lib/nvoi/objects/volume.rb +0 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 29c741e5b25ff6ab371cd67fa720bbfbe45d2edbb3f59cf060cbe22aadde790e
4
- data.tar.gz: dd4af8ac050b8ce0d95ed5a55a69f0e778ad015074df9860e33dce878f026334
3
+ metadata.gz: 0f9088468b332d364b56732feec277576d378ac7bcfbabdade0fcd232a8375ed
4
+ data.tar.gz: 8d803b1505748c97fd14852818274b751be2c8d0b66da70615f13db8eac249e0
5
5
  SHA512:
6
- metadata.gz: 7764ee8e3a9bb39b3059798c49f2e8c8c42c9cd15e69ff0187d7bea84f6b8eea4e36c2d3d4d18db0ba90e3fdf52f4214981311a255e188d84c3c36cbdc6ea3aa
7
- data.tar.gz: 1b4d265fe116bb22967fcdba974cc0aea8d29fffb98f4ed41acc003eba4cd2a8de07218d04eb034e8ee1c37b06831c8334db88c63ba323ee0ef25b898148057e
6
+ metadata.gz: e14ce8dac4f9947c2c7d290843abe318e8be783cdf61a1e04d9327cf0b0f109064bd3313056e0fdc894b6db9fc38c275a2aa4871682c501f1bb14c2c032b5789
7
+ data.tar.gz: 54167a833deb35cd1448b5a9560ccd8e1b36bf0b6c0e629689b78f441aa8990ca471a93bb0c46b545b932f721724555070cbe8a434a8e55acee6b17f6c1e5c6a
data/Gemfile CHANGED
@@ -7,9 +7,5 @@ gemspec
7
7
  group :development, :test do
8
8
  gem "rubocop-rails-omakase", require: false
9
9
  gem "simplecov", require: false
10
+ gem "minitest-reporters", require: false
10
11
  end
11
-
12
- gem "tty-prompt", "~> 0.23.1"
13
- gem "tty-box", "~> 0.7.0"
14
- gem "tty-spinner", "~> 0.9.3"
15
- gem "tty-table", "~> 0.12.0"
data/Gemfile.lock CHANGED
@@ -1,12 +1,17 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nvoi (0.1.8)
4
+ nvoi (0.2.1)
5
5
  aws-sdk-ec2 (~> 1.400)
6
6
  faraday (~> 2.7)
7
7
  net-scp (~> 4.0)
8
8
  net-ssh (~> 7.2)
9
+ pastel (~> 0.8)
9
10
  thor (~> 1.3)
11
+ tty-box (~> 0.7)
12
+ tty-prompt (~> 0.23)
13
+ tty-spinner (~> 0.9)
14
+ tty-table (~> 0.12)
10
15
  zeitwerk (~> 2.6)
11
16
 
12
17
  GEM
@@ -27,9 +32,10 @@ GEM
27
32
  uri (>= 0.13.1)
28
33
  addressable (2.8.8)
29
34
  public_suffix (>= 2.0.2, < 8.0)
35
+ ansi (1.5.0)
30
36
  ast (2.4.3)
31
37
  aws-eventstream (1.4.0)
32
- aws-partitions (1.1192.0)
38
+ aws-partitions (1.1194.0)
33
39
  aws-sdk-core (3.239.2)
34
40
  aws-eventstream (~> 1, >= 1.3.0)
35
41
  aws-partitions (~> 1, >= 1.992.0)
@@ -45,6 +51,7 @@ GEM
45
51
  aws-eventstream (~> 1, >= 1.0.2)
46
52
  base64 (0.3.0)
47
53
  bigdecimal (3.3.1)
54
+ builder (3.3.0)
48
55
  concurrent-ruby (1.3.5)
49
56
  connection_pool (3.0.2)
50
57
  crack (1.0.1)
@@ -62,11 +69,16 @@ GEM
62
69
  i18n (1.14.7)
63
70
  concurrent-ruby (~> 1.0)
64
71
  jmespath (1.6.2)
65
- json (2.17.1)
72
+ json (2.18.0)
66
73
  language_server-protocol (3.17.0.5)
67
74
  lint_roller (1.1.0)
68
75
  logger (1.7.0)
69
- minitest (5.26.2)
76
+ minitest (5.27.0)
77
+ minitest-reporters (1.7.1)
78
+ ansi
79
+ builder
80
+ minitest (>= 5.0)
81
+ ruby-progressbar
70
82
  net-http (0.8.0)
71
83
  uri (>= 0.11.1)
72
84
  net-scp (4.1.0)
@@ -177,15 +189,12 @@ PLATFORMS
177
189
  DEPENDENCIES
178
190
  bundler (~> 2.0)
179
191
  minitest (~> 5.20)
192
+ minitest-reporters
180
193
  nvoi!
181
194
  rake (~> 13.0)
182
195
  rubocop (~> 1.57)
183
196
  rubocop-rails-omakase
184
197
  simplecov
185
- tty-box (~> 0.7.0)
186
- tty-prompt (~> 0.23.1)
187
- tty-spinner (~> 0.9.3)
188
- tty-table (~> 0.12.0)
189
198
  webmock (~> 3.19)
190
199
 
191
200
  BUNDLED WITH
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ require "rubocop/rake_task"
7
7
  Rake::TestTask.new(:test) do |t|
8
8
  t.libs << "test"
9
9
  t.libs << "lib"
10
- t.test_files = FileList["test/**/*_test.rb", "test/**/test_*.rb"]
10
+ t.test_files = FileList["test/**/*_test.rb"]
11
11
  t.warning = false
12
12
  end
13
13