create-entity-server 0.7.11 → 0.9.12
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/package.json +1 -1
- package/template/.env.example +6 -0
- package/template/configs/mimes.json +64 -0
- package/template/configs/server.json +1 -0
- package/template/entities/System/Auth/license.json +7 -3
- package/template/entities/System/Auth/rbac_roles.json +6 -1
- package/template/entities/System/Storage/file_meta.json +9 -0
- package/template/scripts/api-key.ps1 +123 -123
- package/template/scripts/cleanup-history.ps1 +69 -69
- package/template/scripts/cli.ps1 +24 -24
- package/template/scripts/entity.ps1 +70 -70
- package/template/scripts/generate-env-keys.ps1 +125 -125
- package/template/scripts/normalize-entities.ps1 +87 -87
- package/template/scripts/rbac-role.ps1 +124 -124
- package/template/scripts/reset-all.ps1 +83 -83
- package/template/scripts/run.ps1 +248 -248
- package/template/scripts/run.sh +69 -19
- package/template/scripts/service-install.sh +13 -104
- package/template/scripts/service-remove.sh +2 -2
- package/template/scripts/sync.ps1 +145 -145
- package/template/scripts/update-server.ps1 +289 -289
|
@@ -1,124 +1,124 @@
|
|
|
1
|
-
# RBAC Role Management Script (CLI mode) - Windows PowerShell
|
|
2
|
-
# Can be used even when the server is stopped.
|
|
3
|
-
param(
|
|
4
|
-
[Parameter(Position=0)]
|
|
5
|
-
[string]$SubCommand = ""
|
|
6
|
-
)
|
|
7
|
-
|
|
8
|
-
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
9
|
-
$ProjectRoot = Split-Path -Parent $ScriptDir
|
|
10
|
-
$BinPath = Join-Path $ProjectRoot "bin\entity-cli.exe"
|
|
11
|
-
|
|
12
|
-
Set-Location $ProjectRoot
|
|
13
|
-
|
|
14
|
-
# Load language from .env
|
|
15
|
-
$Language = "ko"
|
|
16
|
-
$EnvFile = Join-Path $ProjectRoot ".env"
|
|
17
|
-
if (Test-Path $EnvFile) {
|
|
18
|
-
$LangLine = Get-Content $EnvFile | Where-Object { $_ -match '^LANGUAGE=' } | Select-Object -First 1
|
|
19
|
-
if ($LangLine) { $Language = $LangLine -replace '^LANGUAGE=', '' }
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function Show-Help {
|
|
23
|
-
if ($Language -eq "en") {
|
|
24
|
-
Write-Host "RBAC Role Management (CLI mode)"
|
|
25
|
-
Write-Host "================================"
|
|
26
|
-
Write-Host ""
|
|
27
|
-
Write-Host "Manage rbac_roles entity directly via CLI binary."
|
|
28
|
-
Write-Host "Server does NOT need to be running."
|
|
29
|
-
Write-Host ""
|
|
30
|
-
Write-Host "Usage: .\rbac-role.ps1 <subcommand> [options]"
|
|
31
|
-
Write-Host ""
|
|
32
|
-
Write-Host "Subcommands:"
|
|
33
|
-
Write-Host " list List RBAC roles"
|
|
34
|
-
Write-Host " add Create a new role"
|
|
35
|
-
Write-Host " delete Delete a role by name or seq"
|
|
36
|
-
Write-Host " help Show this help"
|
|
37
|
-
Write-Host ""
|
|
38
|
-
Write-Host "list options:"
|
|
39
|
-
Write-Host " --limit=<n> Max rows to show (default: 50)"
|
|
40
|
-
Write-Host ""
|
|
41
|
-
Write-Host "add options:"
|
|
42
|
-
Write-Host " --name=<name> Role name (required, unique)"
|
|
43
|
-
Write-Host ' --permissions=<j> Permissions JSON array (default: ["entity:read","entity:list"])'
|
|
44
|
-
Write-Host " --description=<t> Description"
|
|
45
|
-
Write-Host " --apply Execute (default is dry-run)"
|
|
46
|
-
Write-Host ""
|
|
47
|
-
Write-Host "delete options:"
|
|
48
|
-
Write-Host " --name=<name> Role name to delete"
|
|
49
|
-
Write-Host " --seq=<n> Role seq to delete"
|
|
50
|
-
Write-Host " --apply Execute (default is dry-run)"
|
|
51
|
-
Write-Host ""
|
|
52
|
-
Write-Host "Examples:"
|
|
53
|
-
Write-Host " .\rbac-role.ps1 list"
|
|
54
|
-
Write-Host ' .\rbac-role.ps1 add --name=readonly --permissions=["entity:read","entity:list"] --apply'
|
|
55
|
-
Write-Host ' .\rbac-role.ps1 add --name=fullaccess --permissions=["*"] --description="Full access" --apply'
|
|
56
|
-
Write-Host " .\rbac-role.ps1 delete --name=readonly --apply"
|
|
57
|
-
Write-Host " .\rbac-role.ps1 delete --seq=5 --apply"
|
|
58
|
-
} else {
|
|
59
|
-
Write-Host "RBAC 역할 관리 (CLI 모드)"
|
|
60
|
-
Write-Host "======================"
|
|
61
|
-
Write-Host ""
|
|
62
|
-
Write-Host "CLI 바이너리로 rbac_roles 엔티티를 직접 조작합니다."
|
|
63
|
-
Write-Host "서버가 실행 중이지 않아도 사용 가능합니다."
|
|
64
|
-
Write-Host ""
|
|
65
|
-
Write-Host "사용법: .\rbac-role.ps1 <하위명령> [옵션]"
|
|
66
|
-
Write-Host ""
|
|
67
|
-
Write-Host "하위 명령:"
|
|
68
|
-
Write-Host " list RBAC 역할 목록 조회"
|
|
69
|
-
Write-Host " add 새 역할 추가"
|
|
70
|
-
Write-Host " delete 역할 삭제 (이름 또는 seq 지정)"
|
|
71
|
-
Write-Host " help 도움말 출력"
|
|
72
|
-
Write-Host ""
|
|
73
|
-
Write-Host "list 옵션:"
|
|
74
|
-
Write-Host " --limit=<n> 최대 출력 행 수 (기본: 50)"
|
|
75
|
-
Write-Host ""
|
|
76
|
-
Write-Host "add 옵션:"
|
|
77
|
-
Write-Host " --name=<이름> 역할 이름 (필수, unique)"
|
|
78
|
-
Write-Host ' --permissions=<j> 권한 JSON 배열 (기본: ["entity:read","entity:list"])'
|
|
79
|
-
Write-Host " --description=<t> 설명"
|
|
80
|
-
Write-Host " --apply 실제 실행 (기본: dry-run)"
|
|
81
|
-
Write-Host ""
|
|
82
|
-
Write-Host "delete 옵션:"
|
|
83
|
-
Write-Host " --name=<이름> 삭제할 역할 이름"
|
|
84
|
-
Write-Host " --seq=<n> 삭제할 역할 seq"
|
|
85
|
-
Write-Host " --apply 실제 실행 (기본: dry-run)"
|
|
86
|
-
Write-Host ""
|
|
87
|
-
Write-Host "예제:"
|
|
88
|
-
Write-Host " .\rbac-role.ps1 list"
|
|
89
|
-
Write-Host ' .\rbac-role.ps1 add --name=readonly --permissions=["entity:read","entity:list"] --apply'
|
|
90
|
-
Write-Host ' .\rbac-role.ps1 add --name=fullaccess --permissions=["*"] --description="전체 권한" --apply'
|
|
91
|
-
Write-Host " .\rbac-role.ps1 delete --name=readonly --apply"
|
|
92
|
-
Write-Host " .\rbac-role.ps1 delete --seq=5 --apply"
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
if (-not $SubCommand) {
|
|
97
|
-
Show-Help
|
|
98
|
-
exit 0
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
if (-not (Test-Path $BinPath)) {
|
|
102
|
-
if ($Language -eq "en") { Write-Host "X bin/entity-cli.exe not found. Run: .\scripts\build.ps1" }
|
|
103
|
-
else { Write-Host "X bin/entity-cli.exe 파일이 없습니다. 먼저 .\scripts\build.ps1 를 실행하세요." }
|
|
104
|
-
exit 1
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
$remainingArgs = $args
|
|
108
|
-
|
|
109
|
-
switch ($SubCommand) {
|
|
110
|
-
{ $_ -in @("list", "show", "add", "delete") } {
|
|
111
|
-
$env:ENTITY_CLI_NAME = "rbac-role"
|
|
112
|
-
& $BinPath rbac-role $SubCommand @remainingArgs
|
|
113
|
-
}
|
|
114
|
-
{ $_ -in @("help", "-h", "--help") } {
|
|
115
|
-
Show-Help
|
|
116
|
-
}
|
|
117
|
-
default {
|
|
118
|
-
if ($Language -eq "en") { Write-Host "X Unknown subcommand: $SubCommand" }
|
|
119
|
-
else { Write-Host "X 알 수 없는 하위 명령: $SubCommand" }
|
|
120
|
-
Write-Host ""
|
|
121
|
-
Show-Help
|
|
122
|
-
exit 1
|
|
123
|
-
}
|
|
124
|
-
}
|
|
1
|
+
# RBAC Role Management Script (CLI mode) - Windows PowerShell
|
|
2
|
+
# Can be used even when the server is stopped.
|
|
3
|
+
param(
|
|
4
|
+
[Parameter(Position=0)]
|
|
5
|
+
[string]$SubCommand = ""
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
9
|
+
$ProjectRoot = Split-Path -Parent $ScriptDir
|
|
10
|
+
$BinPath = Join-Path $ProjectRoot "bin\entity-cli.exe"
|
|
11
|
+
|
|
12
|
+
Set-Location $ProjectRoot
|
|
13
|
+
|
|
14
|
+
# Load language from .env
|
|
15
|
+
$Language = "ko"
|
|
16
|
+
$EnvFile = Join-Path $ProjectRoot ".env"
|
|
17
|
+
if (Test-Path $EnvFile) {
|
|
18
|
+
$LangLine = Get-Content $EnvFile | Where-Object { $_ -match '^LANGUAGE=' } | Select-Object -First 1
|
|
19
|
+
if ($LangLine) { $Language = $LangLine -replace '^LANGUAGE=', '' }
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function Show-Help {
|
|
23
|
+
if ($Language -eq "en") {
|
|
24
|
+
Write-Host "RBAC Role Management (CLI mode)"
|
|
25
|
+
Write-Host "================================"
|
|
26
|
+
Write-Host ""
|
|
27
|
+
Write-Host "Manage rbac_roles entity directly via CLI binary."
|
|
28
|
+
Write-Host "Server does NOT need to be running."
|
|
29
|
+
Write-Host ""
|
|
30
|
+
Write-Host "Usage: .\rbac-role.ps1 <subcommand> [options]"
|
|
31
|
+
Write-Host ""
|
|
32
|
+
Write-Host "Subcommands:"
|
|
33
|
+
Write-Host " list List RBAC roles"
|
|
34
|
+
Write-Host " add Create a new role"
|
|
35
|
+
Write-Host " delete Delete a role by name or seq"
|
|
36
|
+
Write-Host " help Show this help"
|
|
37
|
+
Write-Host ""
|
|
38
|
+
Write-Host "list options:"
|
|
39
|
+
Write-Host " --limit=<n> Max rows to show (default: 50)"
|
|
40
|
+
Write-Host ""
|
|
41
|
+
Write-Host "add options:"
|
|
42
|
+
Write-Host " --name=<name> Role name (required, unique)"
|
|
43
|
+
Write-Host ' --permissions=<j> Permissions JSON array (default: ["entity:read","entity:list"])'
|
|
44
|
+
Write-Host " --description=<t> Description"
|
|
45
|
+
Write-Host " --apply Execute (default is dry-run)"
|
|
46
|
+
Write-Host ""
|
|
47
|
+
Write-Host "delete options:"
|
|
48
|
+
Write-Host " --name=<name> Role name to delete"
|
|
49
|
+
Write-Host " --seq=<n> Role seq to delete"
|
|
50
|
+
Write-Host " --apply Execute (default is dry-run)"
|
|
51
|
+
Write-Host ""
|
|
52
|
+
Write-Host "Examples:"
|
|
53
|
+
Write-Host " .\rbac-role.ps1 list"
|
|
54
|
+
Write-Host ' .\rbac-role.ps1 add --name=readonly --permissions=["entity:read","entity:list"] --apply'
|
|
55
|
+
Write-Host ' .\rbac-role.ps1 add --name=fullaccess --permissions=["*"] --description="Full access" --apply'
|
|
56
|
+
Write-Host " .\rbac-role.ps1 delete --name=readonly --apply"
|
|
57
|
+
Write-Host " .\rbac-role.ps1 delete --seq=5 --apply"
|
|
58
|
+
} else {
|
|
59
|
+
Write-Host "RBAC 역할 관리 (CLI 모드)"
|
|
60
|
+
Write-Host "======================"
|
|
61
|
+
Write-Host ""
|
|
62
|
+
Write-Host "CLI 바이너리로 rbac_roles 엔티티를 직접 조작합니다."
|
|
63
|
+
Write-Host "서버가 실행 중이지 않아도 사용 가능합니다."
|
|
64
|
+
Write-Host ""
|
|
65
|
+
Write-Host "사용법: .\rbac-role.ps1 <하위명령> [옵션]"
|
|
66
|
+
Write-Host ""
|
|
67
|
+
Write-Host "하위 명령:"
|
|
68
|
+
Write-Host " list RBAC 역할 목록 조회"
|
|
69
|
+
Write-Host " add 새 역할 추가"
|
|
70
|
+
Write-Host " delete 역할 삭제 (이름 또는 seq 지정)"
|
|
71
|
+
Write-Host " help 도움말 출력"
|
|
72
|
+
Write-Host ""
|
|
73
|
+
Write-Host "list 옵션:"
|
|
74
|
+
Write-Host " --limit=<n> 최대 출력 행 수 (기본: 50)"
|
|
75
|
+
Write-Host ""
|
|
76
|
+
Write-Host "add 옵션:"
|
|
77
|
+
Write-Host " --name=<이름> 역할 이름 (필수, unique)"
|
|
78
|
+
Write-Host ' --permissions=<j> 권한 JSON 배열 (기본: ["entity:read","entity:list"])'
|
|
79
|
+
Write-Host " --description=<t> 설명"
|
|
80
|
+
Write-Host " --apply 실제 실행 (기본: dry-run)"
|
|
81
|
+
Write-Host ""
|
|
82
|
+
Write-Host "delete 옵션:"
|
|
83
|
+
Write-Host " --name=<이름> 삭제할 역할 이름"
|
|
84
|
+
Write-Host " --seq=<n> 삭제할 역할 seq"
|
|
85
|
+
Write-Host " --apply 실제 실행 (기본: dry-run)"
|
|
86
|
+
Write-Host ""
|
|
87
|
+
Write-Host "예제:"
|
|
88
|
+
Write-Host " .\rbac-role.ps1 list"
|
|
89
|
+
Write-Host ' .\rbac-role.ps1 add --name=readonly --permissions=["entity:read","entity:list"] --apply'
|
|
90
|
+
Write-Host ' .\rbac-role.ps1 add --name=fullaccess --permissions=["*"] --description="전체 권한" --apply'
|
|
91
|
+
Write-Host " .\rbac-role.ps1 delete --name=readonly --apply"
|
|
92
|
+
Write-Host " .\rbac-role.ps1 delete --seq=5 --apply"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (-not $SubCommand) {
|
|
97
|
+
Show-Help
|
|
98
|
+
exit 0
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if (-not (Test-Path $BinPath)) {
|
|
102
|
+
if ($Language -eq "en") { Write-Host "X bin/entity-cli.exe not found. Run: .\scripts\build.ps1" }
|
|
103
|
+
else { Write-Host "X bin/entity-cli.exe 파일이 없습니다. 먼저 .\scripts\build.ps1 를 실행하세요." }
|
|
104
|
+
exit 1
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
$remainingArgs = $args
|
|
108
|
+
|
|
109
|
+
switch ($SubCommand) {
|
|
110
|
+
{ $_ -in @("list", "show", "add", "delete") } {
|
|
111
|
+
$env:ENTITY_CLI_NAME = "rbac-role"
|
|
112
|
+
& $BinPath rbac-role $SubCommand @remainingArgs
|
|
113
|
+
}
|
|
114
|
+
{ $_ -in @("help", "-h", "--help") } {
|
|
115
|
+
Show-Help
|
|
116
|
+
}
|
|
117
|
+
default {
|
|
118
|
+
if ($Language -eq "en") { Write-Host "X Unknown subcommand: $SubCommand" }
|
|
119
|
+
else { Write-Host "X 알 수 없는 하위 명령: $SubCommand" }
|
|
120
|
+
Write-Host ""
|
|
121
|
+
Show-Help
|
|
122
|
+
exit 1
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
# Reset All Entity Tables - Windows PowerShell
|
|
2
|
-
# Drop all entity tables and recreate with default data
|
|
3
|
-
param(
|
|
4
|
-
[switch]$DryRun,
|
|
5
|
-
[switch]$Apply,
|
|
6
|
-
[switch]$Force
|
|
7
|
-
)
|
|
8
|
-
|
|
9
|
-
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
10
|
-
$ProjectRoot = Split-Path -Parent $ScriptDir
|
|
11
|
-
|
|
12
|
-
Set-Location $ProjectRoot
|
|
13
|
-
|
|
14
|
-
# Load language from .env
|
|
15
|
-
$Language = "ko"
|
|
16
|
-
$EnvFile = Join-Path $ProjectRoot ".env"
|
|
17
|
-
if (Test-Path $EnvFile) {
|
|
18
|
-
$LangLine = Get-Content $EnvFile | Where-Object { $_ -match '^LANGUAGE=' } | Select-Object -First 1
|
|
19
|
-
if ($LangLine) { $Language = $LangLine -replace '^LANGUAGE=', '' }
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
if (-not $DryRun -and -not $Apply -and -not $Force) {
|
|
23
|
-
if ($Language -eq "en") {
|
|
24
|
-
Write-Host "Reset All Entity Tables"
|
|
25
|
-
Write-Host "======================="
|
|
26
|
-
Write-Host ""
|
|
27
|
-
Write-Host "Drop all entity tables and recreate with default data."
|
|
28
|
-
Write-Host ""
|
|
29
|
-
Write-Host "Usage: .\reset-all.ps1 [OPTIONS]"
|
|
30
|
-
Write-Host ""
|
|
31
|
-
Write-Host "Options:"
|
|
32
|
-
Write-Host " -DryRun Preview mode - show what will be deleted"
|
|
33
|
-
Write-Host " -Apply Apply changes with confirmation prompt"
|
|
34
|
-
Write-Host " -Force Apply changes without confirmation"
|
|
35
|
-
Write-Host ""
|
|
36
|
-
Write-Host "Examples:"
|
|
37
|
-
Write-Host " .\reset-all.ps1 -DryRun # See what will happen"
|
|
38
|
-
Write-Host " .\reset-all.ps1 -Apply # Execute with confirmation"
|
|
39
|
-
Write-Host " .\reset-all.ps1 -Force # Execute immediately (dangerous!)"
|
|
40
|
-
} else {
|
|
41
|
-
Write-Host "모든 엔티티 테이블 초기화"
|
|
42
|
-
Write-Host "====================="
|
|
43
|
-
Write-Host ""
|
|
44
|
-
Write-Host "모든 entity 테이블을 삭제하고 기본 데이터로 재생성합니다."
|
|
45
|
-
Write-Host ""
|
|
46
|
-
Write-Host "사용법: .\reset-all.ps1 [옵션]"
|
|
47
|
-
Write-Host ""
|
|
48
|
-
Write-Host "옵션:"
|
|
49
|
-
Write-Host " -DryRun 미리보기 모드 - 삭제될 테이블 확인"
|
|
50
|
-
Write-Host " -Apply 확인 후 실행"
|
|
51
|
-
Write-Host " -Force 확인 없이 즉시 실행"
|
|
52
|
-
Write-Host ""
|
|
53
|
-
Write-Host "예제:"
|
|
54
|
-
Write-Host " .\reset-all.ps1 -DryRun # 미리보기"
|
|
55
|
-
Write-Host " .\reset-all.ps1 -Apply # 확인 후 실행"
|
|
56
|
-
Write-Host " .\reset-all.ps1 -Force # 즉시 실행 (위험!)"
|
|
57
|
-
}
|
|
58
|
-
exit 0
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
$CliBin = Join-Path $ProjectRoot "bin\entity-cli.exe"
|
|
62
|
-
if (-not (Test-Path $CliBin)) {
|
|
63
|
-
if ($Language -eq "en") { Write-Host "X bin/entity-cli.exe not found" }
|
|
64
|
-
else { Write-Host "X bin/entity-cli.exe 파일이 없습니다" }
|
|
65
|
-
exit 1
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
if ($DryRun) {
|
|
69
|
-
& $CliBin reset-all
|
|
70
|
-
} elseif ($Force -or $Apply) {
|
|
71
|
-
# 필수 엔티티 없으면 자동 생성 (api_keys, rbac_roles, account, user)
|
|
72
|
-
$NormalizePs1 = Join-Path $ScriptDir "normalize-entities.ps1"
|
|
73
|
-
if ($Language -eq "en") { Write-Host "⚙️ Checking required entities..." }
|
|
74
|
-
else { Write-Host "⚙️ 필수 엔티티 확인 중..." }
|
|
75
|
-
$env:LANGUAGE = $Language
|
|
76
|
-
& $NormalizePs1 -Apply
|
|
77
|
-
|
|
78
|
-
if ($Force) {
|
|
79
|
-
& $CliBin reset-all --apply --force
|
|
80
|
-
} else {
|
|
81
|
-
& $CliBin reset-all --apply
|
|
82
|
-
}
|
|
83
|
-
}
|
|
1
|
+
# Reset All Entity Tables - Windows PowerShell
|
|
2
|
+
# Drop all entity tables and recreate with default data
|
|
3
|
+
param(
|
|
4
|
+
[switch]$DryRun,
|
|
5
|
+
[switch]$Apply,
|
|
6
|
+
[switch]$Force
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
10
|
+
$ProjectRoot = Split-Path -Parent $ScriptDir
|
|
11
|
+
|
|
12
|
+
Set-Location $ProjectRoot
|
|
13
|
+
|
|
14
|
+
# Load language from .env
|
|
15
|
+
$Language = "ko"
|
|
16
|
+
$EnvFile = Join-Path $ProjectRoot ".env"
|
|
17
|
+
if (Test-Path $EnvFile) {
|
|
18
|
+
$LangLine = Get-Content $EnvFile | Where-Object { $_ -match '^LANGUAGE=' } | Select-Object -First 1
|
|
19
|
+
if ($LangLine) { $Language = $LangLine -replace '^LANGUAGE=', '' }
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (-not $DryRun -and -not $Apply -and -not $Force) {
|
|
23
|
+
if ($Language -eq "en") {
|
|
24
|
+
Write-Host "Reset All Entity Tables"
|
|
25
|
+
Write-Host "======================="
|
|
26
|
+
Write-Host ""
|
|
27
|
+
Write-Host "Drop all entity tables and recreate with default data."
|
|
28
|
+
Write-Host ""
|
|
29
|
+
Write-Host "Usage: .\reset-all.ps1 [OPTIONS]"
|
|
30
|
+
Write-Host ""
|
|
31
|
+
Write-Host "Options:"
|
|
32
|
+
Write-Host " -DryRun Preview mode - show what will be deleted"
|
|
33
|
+
Write-Host " -Apply Apply changes with confirmation prompt"
|
|
34
|
+
Write-Host " -Force Apply changes without confirmation"
|
|
35
|
+
Write-Host ""
|
|
36
|
+
Write-Host "Examples:"
|
|
37
|
+
Write-Host " .\reset-all.ps1 -DryRun # See what will happen"
|
|
38
|
+
Write-Host " .\reset-all.ps1 -Apply # Execute with confirmation"
|
|
39
|
+
Write-Host " .\reset-all.ps1 -Force # Execute immediately (dangerous!)"
|
|
40
|
+
} else {
|
|
41
|
+
Write-Host "모든 엔티티 테이블 초기화"
|
|
42
|
+
Write-Host "====================="
|
|
43
|
+
Write-Host ""
|
|
44
|
+
Write-Host "모든 entity 테이블을 삭제하고 기본 데이터로 재생성합니다."
|
|
45
|
+
Write-Host ""
|
|
46
|
+
Write-Host "사용법: .\reset-all.ps1 [옵션]"
|
|
47
|
+
Write-Host ""
|
|
48
|
+
Write-Host "옵션:"
|
|
49
|
+
Write-Host " -DryRun 미리보기 모드 - 삭제될 테이블 확인"
|
|
50
|
+
Write-Host " -Apply 확인 후 실행"
|
|
51
|
+
Write-Host " -Force 확인 없이 즉시 실행"
|
|
52
|
+
Write-Host ""
|
|
53
|
+
Write-Host "예제:"
|
|
54
|
+
Write-Host " .\reset-all.ps1 -DryRun # 미리보기"
|
|
55
|
+
Write-Host " .\reset-all.ps1 -Apply # 확인 후 실행"
|
|
56
|
+
Write-Host " .\reset-all.ps1 -Force # 즉시 실행 (위험!)"
|
|
57
|
+
}
|
|
58
|
+
exit 0
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
$CliBin = Join-Path $ProjectRoot "bin\entity-cli.exe"
|
|
62
|
+
if (-not (Test-Path $CliBin)) {
|
|
63
|
+
if ($Language -eq "en") { Write-Host "X bin/entity-cli.exe not found" }
|
|
64
|
+
else { Write-Host "X bin/entity-cli.exe 파일이 없습니다" }
|
|
65
|
+
exit 1
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if ($DryRun) {
|
|
69
|
+
& $CliBin reset-all
|
|
70
|
+
} elseif ($Force -or $Apply) {
|
|
71
|
+
# 필수 엔티티 없으면 자동 생성 (api_keys, rbac_roles, account, user)
|
|
72
|
+
$NormalizePs1 = Join-Path $ScriptDir "normalize-entities.ps1"
|
|
73
|
+
if ($Language -eq "en") { Write-Host "⚙️ Checking required entities..." }
|
|
74
|
+
else { Write-Host "⚙️ 필수 엔티티 확인 중..." }
|
|
75
|
+
$env:LANGUAGE = $Language
|
|
76
|
+
& $NormalizePs1 -Apply
|
|
77
|
+
|
|
78
|
+
if ($Force) {
|
|
79
|
+
& $CliBin reset-all --apply --force
|
|
80
|
+
} else {
|
|
81
|
+
& $CliBin reset-all --apply
|
|
82
|
+
}
|
|
83
|
+
}
|