@manojkmfsi/monodog 1.1.48 → 1.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.
- package/dist/routes/release-api.js +0 -20
- package/dist/services/change-tracker-service.js +57 -1
- package/dist/services/npm-publish-service.js +0 -21
- package/dist/services/publish-controller.js +0 -7
- package/dist/services/publish-pipeline-service.js +62 -0
- package/monodog-dashboard/dist/assets/{index-DhnTuHQO.js → index-9leUZfeE.js} +10 -10
- package/monodog-dashboard/dist/index.html +1 -1
- package/package.json +1 -1
- package/prisma/migrations/20260305182947_release/migration.sql +162 -0
- package/prisma/schema/change-track.prisma +29 -59
- package/prisma/schema/monodog.db +0 -0
- package/prisma/schema/publish-pipeline.prisma +36 -96
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>MonoDog Dashboard</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-9leUZfeE.js"></script>
|
|
8
8
|
<link rel="stylesheet" crossorigin href="/assets/index-BaDCAFTq.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body class="bg-gray-100 text-gray-900">
|
package/package.json
CHANGED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "ChangeTrack" (
|
|
3
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
4
|
+
"packageName" TEXT NOT NULL,
|
|
5
|
+
"packageVersion" TEXT NOT NULL,
|
|
6
|
+
"detectionMethod" TEXT NOT NULL,
|
|
7
|
+
"detectionTimestamp" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
8
|
+
"filesChanged" TEXT NOT NULL,
|
|
9
|
+
"linesAdded" INTEGER NOT NULL DEFAULT 0,
|
|
10
|
+
"linesRemoved" INTEGER NOT NULL DEFAULT 0,
|
|
11
|
+
"changeType" TEXT NOT NULL,
|
|
12
|
+
"affectedDependents" TEXT NOT NULL,
|
|
13
|
+
"userOverrideType" TEXT,
|
|
14
|
+
"overrideReason" TEXT,
|
|
15
|
+
"overrideBy" TEXT,
|
|
16
|
+
"overriddenAt" DATETIME,
|
|
17
|
+
"isReleaseReady" BOOLEAN NOT NULL DEFAULT false,
|
|
18
|
+
"lastAnalyzedCommit" TEXT NOT NULL,
|
|
19
|
+
"previousVersion" TEXT NOT NULL,
|
|
20
|
+
"proposedVersion" TEXT NOT NULL,
|
|
21
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
22
|
+
"updatedAt" DATETIME NOT NULL
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
-- CreateTable
|
|
26
|
+
CREATE TABLE "CommitChange" (
|
|
27
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
28
|
+
"changeTrackId" TEXT NOT NULL,
|
|
29
|
+
"hash" TEXT NOT NULL,
|
|
30
|
+
"message" TEXT NOT NULL,
|
|
31
|
+
"author" TEXT NOT NULL,
|
|
32
|
+
"authorEmail" TEXT,
|
|
33
|
+
"type" TEXT NOT NULL,
|
|
34
|
+
"scope" TEXT,
|
|
35
|
+
"isBreaking" BOOLEAN NOT NULL DEFAULT false,
|
|
36
|
+
"bodyText" TEXT,
|
|
37
|
+
"committedAt" DATETIME NOT NULL,
|
|
38
|
+
"detectedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
39
|
+
CONSTRAINT "CommitChange_changeTrackId_fkey" FOREIGN KEY ("changeTrackId") REFERENCES "ChangeTrack" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
-- CreateTable
|
|
43
|
+
CREATE TABLE "VersionCalculation" (
|
|
44
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
45
|
+
"packageName" TEXT NOT NULL,
|
|
46
|
+
"currentVersion" TEXT NOT NULL,
|
|
47
|
+
"proposedVersion" TEXT NOT NULL,
|
|
48
|
+
"changeType" TEXT NOT NULL,
|
|
49
|
+
"affectedDependents" TEXT NOT NULL,
|
|
50
|
+
"majorBumps" INTEGER NOT NULL DEFAULT 0,
|
|
51
|
+
"minorBumps" INTEGER NOT NULL DEFAULT 0,
|
|
52
|
+
"patchBumps" INTEGER NOT NULL DEFAULT 0,
|
|
53
|
+
"breakingChanges" INTEGER NOT NULL DEFAULT 0,
|
|
54
|
+
"reason" TEXT NOT NULL,
|
|
55
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
56
|
+
"calculatedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
-- CreateTable
|
|
60
|
+
CREATE TABLE "PublishPipeline" (
|
|
61
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
62
|
+
"packageNames" TEXT NOT NULL,
|
|
63
|
+
"releaseVersion" TEXT,
|
|
64
|
+
"method" TEXT NOT NULL,
|
|
65
|
+
"status" TEXT NOT NULL DEFAULT 'pending',
|
|
66
|
+
"conclusion" TEXT,
|
|
67
|
+
"triggeredBy" TEXT NOT NULL,
|
|
68
|
+
"triggeredAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
69
|
+
"completedAt" DATETIME,
|
|
70
|
+
"releaseNotes" TEXT,
|
|
71
|
+
"errorMessage" TEXT,
|
|
72
|
+
"errorDetails" TEXT,
|
|
73
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
74
|
+
"updatedAt" DATETIME NOT NULL
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
-- CreateTable
|
|
78
|
+
CREATE TABLE "PublishResult" (
|
|
79
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
80
|
+
"publishPipelineId" TEXT NOT NULL,
|
|
81
|
+
"packageName" TEXT NOT NULL,
|
|
82
|
+
"currentVersion" TEXT NOT NULL,
|
|
83
|
+
"newVersion" TEXT NOT NULL,
|
|
84
|
+
"status" TEXT NOT NULL,
|
|
85
|
+
"result" TEXT,
|
|
86
|
+
"npmPackageId" TEXT,
|
|
87
|
+
"tarballUrl" TEXT,
|
|
88
|
+
"publishedAt" DATETIME,
|
|
89
|
+
"gitTagCreated" TEXT,
|
|
90
|
+
"gitCommitSha" TEXT,
|
|
91
|
+
"gitPushCompleted" BOOLEAN NOT NULL DEFAULT false,
|
|
92
|
+
"githubReleaseUrl" TEXT,
|
|
93
|
+
"error" TEXT,
|
|
94
|
+
"errorDetails" TEXT,
|
|
95
|
+
CONSTRAINT "PublishResult_publishPipelineId_fkey" FOREIGN KEY ("publishPipelineId") REFERENCES "PublishPipeline" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
-- CreateTable
|
|
99
|
+
CREATE TABLE "TokenUsageLog" (
|
|
100
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
101
|
+
"userId" TEXT NOT NULL,
|
|
102
|
+
"tokenType" TEXT NOT NULL,
|
|
103
|
+
"source" TEXT NOT NULL,
|
|
104
|
+
"operation" TEXT NOT NULL,
|
|
105
|
+
"resourceId" TEXT NOT NULL,
|
|
106
|
+
"success" BOOLEAN NOT NULL,
|
|
107
|
+
"errorMessage" TEXT,
|
|
108
|
+
"timestamp" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
109
|
+
"ipAddress" TEXT
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
-- CreateTable
|
|
113
|
+
CREATE TABLE "UserSecret" (
|
|
114
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
115
|
+
"userId" TEXT NOT NULL,
|
|
116
|
+
"secretName" TEXT NOT NULL,
|
|
117
|
+
"secretType" TEXT NOT NULL,
|
|
118
|
+
"encryptedValue" TEXT NOT NULL,
|
|
119
|
+
"encryptionVersion" INTEGER NOT NULL DEFAULT 1,
|
|
120
|
+
"addedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
121
|
+
"lastUsedAt" DATETIME,
|
|
122
|
+
"expiresAt" DATETIME
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
-- CreateIndex
|
|
126
|
+
CREATE INDEX "ChangeTrack_packageName_createdAt_idx" ON "ChangeTrack"("packageName", "createdAt");
|
|
127
|
+
|
|
128
|
+
-- CreateIndex
|
|
129
|
+
CREATE INDEX "ChangeTrack_isReleaseReady_packageName_idx" ON "ChangeTrack"("isReleaseReady", "packageName");
|
|
130
|
+
|
|
131
|
+
-- CreateIndex
|
|
132
|
+
CREATE INDEX "CommitChange_changeTrackId_hash_idx" ON "CommitChange"("changeTrackId", "hash");
|
|
133
|
+
|
|
134
|
+
-- CreateIndex
|
|
135
|
+
CREATE INDEX "CommitChange_hash_idx" ON "CommitChange"("hash");
|
|
136
|
+
|
|
137
|
+
-- CreateIndex
|
|
138
|
+
CREATE INDEX "VersionCalculation_packageName_proposedVersion_idx" ON "VersionCalculation"("packageName", "proposedVersion");
|
|
139
|
+
|
|
140
|
+
-- CreateIndex
|
|
141
|
+
CREATE INDEX "PublishPipeline_status_createdAt_idx" ON "PublishPipeline"("status", "createdAt");
|
|
142
|
+
|
|
143
|
+
-- CreateIndex
|
|
144
|
+
CREATE INDEX "PublishPipeline_triggeredBy_createdAt_idx" ON "PublishPipeline"("triggeredBy", "createdAt");
|
|
145
|
+
|
|
146
|
+
-- CreateIndex
|
|
147
|
+
CREATE INDEX "PublishResult_publishPipelineId_idx" ON "PublishResult"("publishPipelineId");
|
|
148
|
+
|
|
149
|
+
-- CreateIndex
|
|
150
|
+
CREATE INDEX "PublishResult_packageName_newVersion_idx" ON "PublishResult"("packageName", "newVersion");
|
|
151
|
+
|
|
152
|
+
-- CreateIndex
|
|
153
|
+
CREATE INDEX "TokenUsageLog_userId_timestamp_idx" ON "TokenUsageLog"("userId", "timestamp");
|
|
154
|
+
|
|
155
|
+
-- CreateIndex
|
|
156
|
+
CREATE INDEX "TokenUsageLog_tokenType_timestamp_idx" ON "TokenUsageLog"("tokenType", "timestamp");
|
|
157
|
+
|
|
158
|
+
-- CreateIndex
|
|
159
|
+
CREATE INDEX "UserSecret_userId_idx" ON "UserSecret"("userId");
|
|
160
|
+
|
|
161
|
+
-- CreateIndex
|
|
162
|
+
CREATE UNIQUE INDEX "UserSecret_userId_secretName_key" ON "UserSecret"("userId", "secretName");
|
|
@@ -1,48 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
* Change Tracking Schema
|
|
3
|
-
* Tracks detected changes in packages for independent versioning
|
|
4
|
-
* Replaces dependency on Changesets .changeset/*.md files
|
|
5
|
-
*/
|
|
1
|
+
|
|
6
2
|
|
|
7
3
|
model ChangeTrack {
|
|
8
4
|
id String @id @default(cuid())
|
|
9
|
-
|
|
5
|
+
|
|
10
6
|
// Package identification
|
|
11
|
-
packageName String
|
|
7
|
+
packageName String
|
|
12
8
|
packageVersion String
|
|
13
|
-
|
|
9
|
+
|
|
14
10
|
// Change detection
|
|
15
|
-
detectionMethod DetectionMethod
|
|
11
|
+
detectionMethod String // was enum DetectionMethod
|
|
16
12
|
detectionTimestamp DateTime @default(now())
|
|
17
|
-
|
|
13
|
+
|
|
18
14
|
// Commit-based detection
|
|
19
15
|
commits CommitChange[]
|
|
20
|
-
|
|
16
|
+
|
|
21
17
|
// File change analysis
|
|
22
|
-
filesChanged String[]
|
|
18
|
+
filesChanged String // JSON stringified array, was String[]
|
|
23
19
|
linesAdded Int @default(0)
|
|
24
20
|
linesRemoved Int @default(0)
|
|
25
|
-
|
|
21
|
+
|
|
26
22
|
// Change type determination
|
|
27
|
-
changeType ChangeType
|
|
28
|
-
affectedDependents String[]
|
|
29
|
-
|
|
23
|
+
changeType String // was enum ChangeType
|
|
24
|
+
affectedDependents String // JSON stringified array, was String[]
|
|
25
|
+
|
|
30
26
|
// Manual override support
|
|
31
|
-
userOverrideType ChangeType
|
|
27
|
+
userOverrideType String? // was enum ChangeType
|
|
32
28
|
overrideReason String?
|
|
33
29
|
overrideBy String?
|
|
34
30
|
overriddenAt DateTime?
|
|
35
|
-
|
|
31
|
+
|
|
36
32
|
// Release readiness
|
|
37
33
|
isReleaseReady Boolean @default(false)
|
|
38
34
|
lastAnalyzedCommit String
|
|
39
35
|
previousVersion String
|
|
40
36
|
proposedVersion String
|
|
41
|
-
|
|
37
|
+
|
|
42
38
|
// Metadata
|
|
43
39
|
createdAt DateTime @default(now())
|
|
44
40
|
updatedAt DateTime @updatedAt
|
|
45
|
-
|
|
41
|
+
|
|
46
42
|
@@index([packageName, createdAt])
|
|
47
43
|
@@index([isReleaseReady, packageName])
|
|
48
44
|
}
|
|
@@ -51,78 +47,52 @@ model CommitChange {
|
|
|
51
47
|
id String @id @default(cuid())
|
|
52
48
|
changeTrackId String
|
|
53
49
|
changeTrack ChangeTrack @relation(fields: [changeTrackId], references: [id], onDelete: Cascade)
|
|
54
|
-
|
|
50
|
+
|
|
55
51
|
// Commit details
|
|
56
52
|
hash String
|
|
57
53
|
message String
|
|
58
54
|
author String
|
|
59
55
|
authorEmail String?
|
|
60
|
-
|
|
56
|
+
|
|
61
57
|
// Conventional commit parsing
|
|
62
|
-
type ConventionalType
|
|
58
|
+
type String // was enum ConventionalType
|
|
63
59
|
scope String?
|
|
64
60
|
isBreaking Boolean @default(false)
|
|
65
61
|
bodyText String?
|
|
66
|
-
|
|
62
|
+
|
|
67
63
|
// Timestamps
|
|
68
64
|
committedAt DateTime
|
|
69
65
|
detectedAt DateTime @default(now())
|
|
70
|
-
|
|
66
|
+
|
|
71
67
|
@@index([changeTrackId, hash])
|
|
72
68
|
@@index([hash])
|
|
73
69
|
}
|
|
74
70
|
|
|
75
71
|
model VersionCalculation {
|
|
76
72
|
id String @id @default(cuid())
|
|
77
|
-
|
|
73
|
+
|
|
78
74
|
packageName String
|
|
79
75
|
currentVersion String
|
|
80
76
|
proposedVersion String
|
|
81
|
-
|
|
77
|
+
|
|
82
78
|
// Components of calculation
|
|
83
|
-
changeType ChangeType
|
|
84
|
-
affectedDependents String[]
|
|
85
|
-
|
|
79
|
+
changeType String // was enum ChangeType
|
|
80
|
+
affectedDependents String // JSON stringified array, was String[]
|
|
81
|
+
|
|
86
82
|
// Calculation details
|
|
87
83
|
majorBumps Int @default(0)
|
|
88
84
|
minorBumps Int @default(0)
|
|
89
85
|
patchBumps Int @default(0)
|
|
90
86
|
breakingChanges Int @default(0)
|
|
91
|
-
|
|
87
|
+
|
|
92
88
|
// Reason tracking
|
|
93
89
|
reason String // Human-readable explanation
|
|
94
|
-
|
|
90
|
+
|
|
95
91
|
// Metadata
|
|
96
92
|
createdAt DateTime @default(now())
|
|
97
93
|
calculatedAt DateTime @default(now())
|
|
98
|
-
|
|
99
|
-
@@index([packageName, proposedVersion])
|
|
100
|
-
}
|
|
101
94
|
|
|
102
|
-
|
|
103
|
-
commit // Conventional commits
|
|
104
|
-
diff // Git diff analysis
|
|
105
|
-
manual // User-provided
|
|
106
|
-
hybrid // Combined approach
|
|
95
|
+
@@index([packageName, proposedVersion])
|
|
107
96
|
}
|
|
108
97
|
|
|
109
|
-
enum ChangeType {
|
|
110
|
-
major // Breaking change
|
|
111
|
-
minor // New feature
|
|
112
|
-
patch // Bug fix
|
|
113
|
-
none // No release needed
|
|
114
|
-
}
|
|
115
98
|
|
|
116
|
-
enum ConventionalType {
|
|
117
|
-
feat // feat: New feature (minor)
|
|
118
|
-
fix // fix: Bug fix (patch)
|
|
119
|
-
docs // docs: Documentation
|
|
120
|
-
style // style: Code style
|
|
121
|
-
refactor // refactor: Refactoring
|
|
122
|
-
test // test: Tests
|
|
123
|
-
chore // chore: Maintenance
|
|
124
|
-
perf // perf: Performance
|
|
125
|
-
ci // ci: CI/CD changes
|
|
126
|
-
revert // revert: Reverts a commit
|
|
127
|
-
build // build: Build system
|
|
128
|
-
}
|
package/prisma/schema/monodog.db
CHANGED
|
Binary file
|
|
@@ -1,40 +1,35 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Publish Pipeline Schema
|
|
3
|
-
* Tracks the independent publishing process without GitHub Actions
|
|
4
|
-
* Supports hybrid execution (Node.js or GitHub Actions)
|
|
5
|
-
*/
|
|
6
1
|
|
|
7
2
|
model PublishPipeline {
|
|
8
3
|
id String @id @default(cuid())
|
|
9
|
-
|
|
4
|
+
|
|
10
5
|
// Pipeline identification
|
|
11
|
-
packageNames String[]
|
|
6
|
+
packageNames String // JSON stringified array, was String[]
|
|
12
7
|
releaseVersion String?
|
|
13
|
-
|
|
8
|
+
|
|
14
9
|
// Execution method
|
|
15
|
-
method
|
|
16
|
-
status
|
|
17
|
-
conclusion PublishConclusion
|
|
18
|
-
|
|
10
|
+
method String // was enum PublishMethod
|
|
11
|
+
status String @default("pending") // was enum PublishStatus
|
|
12
|
+
conclusion String? // was enum PublishConclusion
|
|
13
|
+
|
|
19
14
|
// Audit trail
|
|
20
15
|
triggeredBy String // User ID
|
|
21
16
|
triggeredAt DateTime @default(now())
|
|
22
17
|
completedAt DateTime?
|
|
23
|
-
|
|
18
|
+
|
|
24
19
|
// Release notes
|
|
25
20
|
releaseNotes String?
|
|
26
|
-
|
|
21
|
+
|
|
27
22
|
// Progress tracking
|
|
28
23
|
packageResults PublishResult[]
|
|
29
|
-
|
|
24
|
+
|
|
30
25
|
// Error handling
|
|
31
26
|
errorMessage String?
|
|
32
27
|
errorDetails String?
|
|
33
|
-
|
|
28
|
+
|
|
34
29
|
// Metadata
|
|
35
30
|
createdAt DateTime @default(now())
|
|
36
31
|
updatedAt DateTime @updatedAt
|
|
37
|
-
|
|
32
|
+
|
|
38
33
|
@@index([status, createdAt])
|
|
39
34
|
@@index([triggeredBy, createdAt])
|
|
40
35
|
}
|
|
@@ -43,137 +38,82 @@ model PublishResult {
|
|
|
43
38
|
id String @id @default(cuid())
|
|
44
39
|
publishPipelineId String
|
|
45
40
|
publishPipeline PublishPipeline @relation(fields: [publishPipelineId], references: [id], onDelete: Cascade)
|
|
46
|
-
|
|
41
|
+
|
|
47
42
|
// Package info
|
|
48
43
|
packageName String
|
|
49
44
|
currentVersion String
|
|
50
45
|
newVersion String
|
|
51
|
-
|
|
46
|
+
|
|
52
47
|
// Publishing result
|
|
53
|
-
status PublishStatus
|
|
54
|
-
result PublishResultType
|
|
55
|
-
|
|
48
|
+
status String // was enum PublishStatus
|
|
49
|
+
result String? // was enum PublishResultType
|
|
50
|
+
|
|
56
51
|
// npm details
|
|
57
52
|
npmPackageId String? // @scope/name@1.2.3
|
|
58
53
|
tarballUrl String?
|
|
59
54
|
publishedAt DateTime?
|
|
60
|
-
|
|
55
|
+
|
|
61
56
|
// Git details
|
|
62
57
|
gitTagCreated String? // Git tag name
|
|
63
58
|
gitCommitSha String?
|
|
64
59
|
gitPushCompleted Boolean @default(false)
|
|
65
|
-
|
|
60
|
+
|
|
66
61
|
// GitHub Release
|
|
67
62
|
githubReleaseUrl String?
|
|
68
|
-
|
|
63
|
+
|
|
69
64
|
// Errors
|
|
70
65
|
error String?
|
|
71
66
|
errorDetails String?
|
|
72
|
-
|
|
67
|
+
|
|
73
68
|
@@index([publishPipelineId])
|
|
74
69
|
@@index([packageName, newVersion])
|
|
75
70
|
}
|
|
76
71
|
|
|
77
72
|
model TokenUsageLog {
|
|
78
73
|
id String @id @default(cuid())
|
|
79
|
-
|
|
74
|
+
|
|
80
75
|
// User context
|
|
81
76
|
userId String
|
|
82
|
-
|
|
77
|
+
|
|
83
78
|
// Token type
|
|
84
|
-
tokenType TokenType
|
|
85
|
-
source
|
|
86
|
-
|
|
79
|
+
tokenType String // was enum TokenType
|
|
80
|
+
source String // was enum TokenSource
|
|
81
|
+
|
|
87
82
|
// Operation details
|
|
88
|
-
operation TokenOperation
|
|
83
|
+
operation String // was enum TokenOperation
|
|
89
84
|
resourceId String // Package name or repo
|
|
90
|
-
|
|
85
|
+
|
|
91
86
|
// Result
|
|
92
87
|
success Boolean
|
|
93
88
|
errorMessage String?
|
|
94
|
-
|
|
89
|
+
|
|
95
90
|
// Security
|
|
96
91
|
timestamp DateTime @default(now())
|
|
97
92
|
ipAddress String?
|
|
98
|
-
|
|
93
|
+
|
|
99
94
|
@@index([userId, timestamp])
|
|
100
95
|
@@index([tokenType, timestamp])
|
|
101
96
|
}
|
|
102
97
|
|
|
103
98
|
model UserSecret {
|
|
104
99
|
id String @id @default(cuid())
|
|
105
|
-
userId String
|
|
106
|
-
|
|
100
|
+
userId String
|
|
101
|
+
|
|
107
102
|
// Secret metadata
|
|
108
103
|
secretName String // 'npm_token', 'github_token'
|
|
109
|
-
secretType SecretType
|
|
110
|
-
|
|
104
|
+
secretType String // was enum SecretType
|
|
105
|
+
|
|
111
106
|
// Encrypted value (never store plaintext)
|
|
112
107
|
encryptedValue String
|
|
113
108
|
encryptionVersion Int @default(1)
|
|
114
|
-
|
|
109
|
+
|
|
115
110
|
// Metadata
|
|
116
111
|
addedAt DateTime @default(now())
|
|
117
112
|
lastUsedAt DateTime?
|
|
118
113
|
expiresAt DateTime?
|
|
119
|
-
|
|
114
|
+
|
|
120
115
|
@@unique([userId, secretName])
|
|
121
116
|
@@index([userId])
|
|
122
117
|
}
|
|
123
118
|
|
|
124
|
-
enum PublishMethod {
|
|
125
|
-
node
|
|
126
|
-
github_actions
|
|
127
|
-
hybrid
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
enum PublishStatus {
|
|
131
|
-
pending // Waiting to start
|
|
132
|
-
preparing // Preparing versions and changelogs
|
|
133
|
-
publishing // Publishing to npm
|
|
134
|
-
tagging // Creating git tags
|
|
135
|
-
pushing // Pushing to GitHub
|
|
136
|
-
releasing // Creating GitHub releases
|
|
137
|
-
completed // Done successfully
|
|
138
|
-
failed // Failed at some point
|
|
139
|
-
cancelled // User cancelled
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
enum PublishConclusion {
|
|
143
|
-
success
|
|
144
|
-
failure
|
|
145
|
-
cancelled
|
|
146
|
-
partial
|
|
147
|
-
}
|
|
148
119
|
|
|
149
|
-
enum PublishResultType {
|
|
150
|
-
published
|
|
151
|
-
skipped
|
|
152
|
-
error
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
enum TokenType {
|
|
156
|
-
npm
|
|
157
|
-
github
|
|
158
|
-
git
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
enum TokenSource {
|
|
162
|
-
env // Environment variable
|
|
163
|
-
user // User-provided secret
|
|
164
|
-
oauth // OAuth session
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
enum TokenOperation {
|
|
168
|
-
publish
|
|
169
|
-
tag
|
|
170
|
-
release
|
|
171
|
-
commit
|
|
172
|
-
push
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
enum SecretType {
|
|
176
|
-
npm_token
|
|
177
|
-
github_token
|
|
178
|
-
github_oauth
|
|
179
|
-
}
|