@vtecx/vtecxdocument 1.0.5 → 1.0.6

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 (2) hide show
  1. package/docs/batchjob.md +63 -7
  2. package/package.json +1 -1
package/docs/batchjob.md CHANGED
@@ -60,9 +60,44 @@ src/batchjob/{モジュール名}.ts
60
60
 
61
61
  スケジュール設定で指定するモジュール名は、通常、パスと拡張子を除いた `daily-report` です。
62
62
 
63
+ ### `/_html/batchjob` の事前登録
64
+
65
+ 初回アップロードの前に、登録先である `/_html/batchjob` フォルダーが vte.cx サービス上に存在している必要があります。フォルダーがない状態で Rspack のアップロードを実行するとエラーになります。
66
+
67
+ プロジェクトの `setup/_settings/htmlfolders.xml` に `/_html/batchjob` を定義します。
68
+
69
+ ```xml
70
+ <feed>
71
+ <entry>
72
+ <contributor>
73
+ <uri>urn:vte.cx:acl:/_group/$admin,CRUD</uri>
74
+ </contributor>
75
+ <link rel="self" href="/_html/batchjob" />
76
+ </entry>
77
+ </feed>
78
+ ```
79
+
80
+ 実際のファイルでは、プロジェクトの権限設計に応じた `contributor` を設定してください。既存の `/_settings` や `/_html` の定義がある場合は削除せず、`/_html/batchjob` の Entry を追加します。
81
+
82
+ 対象サービスへログインした後、次のコマンドでフォルダー定義をアップロードします。
83
+
84
+ ```bash
85
+ pnpm upload:htmlfolders
86
+ ```
87
+
88
+ これは通常、サービスごとの初回セットアップ時、または `htmlfolders.xml` を変更したときに実行します。すでに `/_html/batchjob` が登録済みであれば、batchjob モジュールを更新するたびに実行する必要はありません。
89
+
63
90
  ## ビルドとアップロード
64
91
 
65
- 対象の vte.cx サービスへログインした状態で、次のコマンドを実行します。
92
+ 対象の vte.cx サービスへログインし、初回は `/_html/batchjob` を登録してから、Rspack コマンドを実行します。
93
+
94
+ ```bash
95
+ pnpm run login
96
+ pnpm upload:htmlfolders
97
+ pnpm exec rspack --env entry=/batchjob/{モジュール名}.ts
98
+ ```
99
+
100
+ `/_html/batchjob` が登録済みの場合、モジュール更新時は次のコマンドだけで構いません。
66
101
 
67
102
  ```bash
68
103
  pnpm exec rspack --env entry=/batchjob/{モジュール名}.ts
@@ -293,12 +328,14 @@ exports.run = async function (vtecxnext: VtecxNext) {
293
328
  1. `src/batchjob/{モジュール名}.ts` を実装する。
294
329
  2. 型チェック、Lint、単体テストを実行する。
295
330
  3. 対象環境とログイン先を確認する。
296
- 4. Rspack コマンドで JavaScript をビルドし、アップロードする。
297
- 5. `/_html/batchjob/{モジュール名}.js` が登録されたことを確認する。
298
- 6. 必要なサービスプロパティを設定する。
299
- 7. `/_settings/properties` Entry の `rights` に `_batchjob.*` のスケジュールを登録する。
300
- 8. 少量のデータまたは副作用を抑えた設定で動作確認する。
301
- 9. 実行ログ、Entry の状態遷移、外部処理の結果を確認する。
331
+ 4. 初回は `setup/_settings/htmlfolders.xml` に `/_html/batchjob` が定義されていることを確認する。
332
+ 5. 初回は `pnpm upload:htmlfolders` で登録先フォルダーをアップロードする。
333
+ 6. Rspack コマンドで JavaScript をビルドし、アップロードする。
334
+ 7. `/_html/batchjob/{モジュール名}.js` が登録されたことを確認する。
335
+ 8. 必要なサービスプロパティを設定する。
336
+ 9. `/_settings/properties` Entry の `rights` に `_batchjob.*` のスケジュールを登録する。
337
+ 10. 少量のデータまたは副作用を抑えた設定で動作確認する。
338
+ 11. 実行ログ、Entry の状態遷移、外部処理の結果を確認する。
302
339
 
303
340
  ## AI コーディングエージェント向けチェックリスト
304
341
 
@@ -306,6 +343,8 @@ exports.run = async function (vtecxnext: VtecxNext) {
306
343
 
307
344
  - [ ] `exports.run = async function (vtecxnext)` の形式になっている。
308
345
  - [ ] 引数の `vtecxnext` を使用し、認証情報を埋め込んでいない。
346
+ - [ ] `setup/_settings/htmlfolders.xml` に `/_html/batchjob` が定義されている。
347
+ - [ ] 初回アップロード前に `pnpm upload:htmlfolders` を実行している。
309
348
  - [ ] ソースと登録先が `batchjob/{モジュール名}` で対応している。
310
349
  - [ ] スケジュール右端のモジュール名が登録ファイルと一致している。
311
350
  - [ ] 検索 URL に必要な `f` と件数上限がある。
@@ -320,6 +359,23 @@ exports.run = async function (vtecxnext: VtecxNext) {
320
359
 
321
360
  ## よくある問題
322
361
 
362
+ ### アップロード時に `/_html/batchjob` が存在しないエラーになる
363
+
364
+ Rspack のアップロード先フォルダーがサービス上に未登録です。
365
+
366
+ 1. `setup/_settings/htmlfolders.xml` に `/_html/batchjob` の Entry を追加する。
367
+ 2. 対象サービスへログインする。
368
+ 3. `pnpm upload:htmlfolders` を実行する。
369
+ 4. Rspack のアップロードコマンドを再実行する。
370
+
371
+ ```bash
372
+ pnpm run login
373
+ pnpm upload:htmlfolders
374
+ pnpm exec rspack --env entry=/batchjob/{モジュール名}.ts
375
+ ```
376
+
377
+ `/_html` だけが存在していても、子フォルダーの `/_html/batchjob` が未登録であればアップロードできません。
378
+
323
379
  ### ジョブが起動しない
324
380
 
325
381
  - JavaScript が `/_html/batchjob` 配下へ登録されているか確認する。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtecx/vtecxdocument",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "vte.cx BaaS framework and API documentation",
5
5
  "main": "",
6
6
  "files": [