mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-18 04:58:28 +00:00
feat: fixing ts
This commit is contained in:
@@ -40,7 +40,7 @@ export async function up(knex: Knex): Promise<void> {
|
||||
t.string("status").defaultTo("invited");
|
||||
t.string("inviteEmail");
|
||||
t.datetime("lastInvitedAt");
|
||||
t.datetime("lastLoginAuthMethod");
|
||||
t.string("lastLoginAuthMethod");
|
||||
t.datetime("lastLoginTime");
|
||||
t.specificType("projectFavorites", "text[]");
|
||||
t.timestamps(true, true, true);
|
||||
|
||||
@@ -16,11 +16,11 @@ export const MembershipsSchema = z.object({
|
||||
scopeOrgId: z.string().uuid(),
|
||||
scopeProjectId: z.string().nullable().optional(),
|
||||
scopeNamespaceId: z.string().uuid().nullable().optional(),
|
||||
isActive: z.boolean().nullable().optional(),
|
||||
isActive: z.boolean().default(true),
|
||||
status: z.string().default("invited").nullable().optional(),
|
||||
inviteEmail: z.string().nullable().optional(),
|
||||
lastInvitedAt: z.date().nullable().optional(),
|
||||
lastLoginAuthMethod: z.date().nullable().optional(),
|
||||
lastLoginAuthMethod: z.string().nullable().optional(),
|
||||
lastLoginTime: z.date().nullable().optional(),
|
||||
projectFavorites: z.string().array().nullable().optional(),
|
||||
createdAt: z.date(),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Knex } from "knex";
|
||||
|
||||
import { OrgMembershipRole, OrgMembershipStatus, TableName } from "../schemas";
|
||||
import { AccessScope, OrgMembershipRole, OrgMembershipStatus, TableName } from "../schemas";
|
||||
import { seedData1 } from "../seed-data";
|
||||
|
||||
export async function seed(knex: Knex): Promise<void> {
|
||||
@@ -24,13 +24,22 @@ export async function seed(knex: Knex): Promise<void> {
|
||||
])
|
||||
.returning("*");
|
||||
|
||||
await knex(TableName.OrgMembership).insert([
|
||||
const [membership] = await knex(TableName.Membership)
|
||||
.insert([
|
||||
{
|
||||
scope: AccessScope.Organization,
|
||||
scopeOrgId: org.id,
|
||||
actorUserId: user.id,
|
||||
isActive: true,
|
||||
status: OrgMembershipStatus.Accepted
|
||||
}
|
||||
])
|
||||
.returning("*");
|
||||
|
||||
await knex(TableName.MembershipRole).insert([
|
||||
{
|
||||
role: OrgMembershipRole.Admin,
|
||||
orgId: org.id,
|
||||
status: OrgMembershipStatus.Accepted,
|
||||
userId: user.id,
|
||||
isActive: true
|
||||
membershipId: membership.id,
|
||||
role: OrgMembershipRole.Admin
|
||||
}
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -6,14 +6,14 @@ import { generateUserSrpKeys } from "@app/lib/crypto/srp";
|
||||
import { initLogger, logger } from "@app/lib/logger";
|
||||
import { alphaNumericNanoId } from "@app/lib/nanoid";
|
||||
import { AuthMethod } from "@app/services/auth/auth-type";
|
||||
import { membershipUserDALFactory } from "@app/services/membership-user/membership-user-dal";
|
||||
import { assignWorkspaceKeysToMembers, createProjectKey } from "@app/services/project/project-fns";
|
||||
import { projectKeyDALFactory } from "@app/services/project-key/project-key-dal";
|
||||
import { projectMembershipDALFactory } from "@app/services/project-membership/project-membership-dal";
|
||||
import { projectUserMembershipRoleDALFactory } from "@app/services/project-membership/project-user-membership-role-dal";
|
||||
import { superAdminDALFactory } from "@app/services/super-admin/super-admin-dal";
|
||||
import { userDALFactory } from "@app/services/user/user-dal";
|
||||
|
||||
import {
|
||||
AccessScope,
|
||||
OrgMembershipRole,
|
||||
OrgMembershipStatus,
|
||||
ProjectMembershipRole,
|
||||
@@ -23,6 +23,7 @@ import {
|
||||
TableName
|
||||
} from "../schemas";
|
||||
import { seedData1 } from "../seed-data";
|
||||
import { membershipRoleDALFactory } from "@app/services/membership/membership-role-dal";
|
||||
|
||||
export const DEFAULT_PROJECT_ENVS = [
|
||||
{ name: "Development", slug: "dev" },
|
||||
@@ -39,8 +40,8 @@ const createUserWithGhostUser = async (
|
||||
) => {
|
||||
const projectKeyDAL = projectKeyDALFactory(knex);
|
||||
const userDAL = userDALFactory(knex);
|
||||
const projectMembershipDAL = projectMembershipDALFactory(knex);
|
||||
const projectUserMembershipRoleDAL = projectUserMembershipRoleDALFactory(knex);
|
||||
const membershipDAL = membershipUserDALFactory(knex);
|
||||
const membershipRoleDAL = membershipRoleDALFactory(knex);
|
||||
|
||||
const email = `sudo-${alphaNumericNanoId(16)}-${orgId}@infisical.com`; // We add a nanoid because the email is unique. And we have to create a new ghost user each time, so we can have access to the private key.
|
||||
|
||||
@@ -63,25 +64,36 @@ const createUserWithGhostUser = async (
|
||||
.onConflict("userId")
|
||||
.merge();
|
||||
|
||||
await knex(TableName.OrgMembership)
|
||||
const [orgMembership] = await knex(TableName.Membership)
|
||||
.insert({
|
||||
orgId,
|
||||
userId: ghostUser.id,
|
||||
role: OrgMembershipRole.Admin,
|
||||
scope: AccessScope.Organization,
|
||||
scopeOrgId: orgId,
|
||||
actorUserId: ghostUser.id,
|
||||
status: OrgMembershipStatus.Accepted,
|
||||
isActive: true
|
||||
})
|
||||
.returning("*");
|
||||
|
||||
const [projectMembership] = await knex(TableName.ProjectMembership)
|
||||
await knex(TableName.MembershipRole).insert([
|
||||
{
|
||||
membershipId: orgMembership.id,
|
||||
role: OrgMembershipRole.Admin
|
||||
}
|
||||
]);
|
||||
|
||||
const [projectMembership] = await knex(TableName.Membership)
|
||||
.insert({
|
||||
userId: ghostUser.id,
|
||||
projectId
|
||||
actorUserId: ghostUser.id,
|
||||
scopeProjectId: projectId,
|
||||
scope: AccessScope.Project,
|
||||
scopeOrgId: orgId,
|
||||
status: OrgMembershipStatus.Accepted,
|
||||
isActive: true
|
||||
})
|
||||
.returning("*");
|
||||
|
||||
await knex(TableName.ProjectUserMembershipRole).insert({
|
||||
projectMembershipId: projectMembership.id,
|
||||
await knex(TableName.MembershipRole).insert({
|
||||
membershipId: projectMembership.id,
|
||||
role: ProjectMembershipRole.Admin
|
||||
});
|
||||
|
||||
@@ -142,17 +154,16 @@ const createUserWithGhostUser = async (
|
||||
});
|
||||
|
||||
// Create a membership for the user
|
||||
const userProjectMembership = await projectMembershipDAL.create(
|
||||
const userProjectMembership = await membershipDAL.create(
|
||||
{
|
||||
projectId,
|
||||
userId: user.id
|
||||
scopeProjectId: projectId,
|
||||
scope: AccessScope.Project,
|
||||
actorUserId: user.id,
|
||||
scopeOrgId: orgId
|
||||
},
|
||||
knex
|
||||
);
|
||||
await projectUserMembershipRoleDAL.create(
|
||||
{ projectMembershipId: userProjectMembership.id, role: ProjectMembershipRole.Admin },
|
||||
knex
|
||||
);
|
||||
await membershipRoleDAL.create({ membershipId: userProjectMembership.id, role: ProjectMembershipRole.Admin }, knex);
|
||||
|
||||
// Create a project key for the user
|
||||
await projectKeyDAL.create(
|
||||
@@ -195,10 +206,11 @@ export async function seed(knex: Knex): Promise<void> {
|
||||
})
|
||||
.returning("*");
|
||||
|
||||
const userOrgMembership = await knex(TableName.OrgMembership)
|
||||
const userOrgMembership = await knex(TableName.Membership)
|
||||
.where({
|
||||
orgId: seedData1.organization.id,
|
||||
userId: seedData1.id
|
||||
scopeOrgId: seedData1.organization.id,
|
||||
actorUserId: seedData1.id,
|
||||
scope: AccessScope.Organization
|
||||
})
|
||||
.first();
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Knex } from "knex";
|
||||
|
||||
import { ProjectMembershipRole, ProjectType, ProjectVersion, TableName } from "../schemas";
|
||||
import { AccessScope, ProjectMembershipRole, ProjectType, ProjectVersion, TableName } from "../schemas";
|
||||
import { seedData1 } from "../seed-data";
|
||||
|
||||
export const DEFAULT_PROJECT_ENVS = [
|
||||
@@ -23,15 +23,17 @@ export async function seed(knex: Knex): Promise<void> {
|
||||
})
|
||||
.returning("*");
|
||||
|
||||
const projectMembershipV3 = await knex(TableName.ProjectMembership)
|
||||
const projectMembershipV3 = await knex(TableName.Membership)
|
||||
.insert({
|
||||
projectId: projectV2.id,
|
||||
userId: seedData1.id
|
||||
scopeProjectId: projectV2.id,
|
||||
actorUserId: seedData1.id,
|
||||
scope: AccessScope.Project,
|
||||
scopeOrgId: seedData1.organization.id
|
||||
})
|
||||
.returning("*");
|
||||
await knex(TableName.ProjectUserMembershipRole).insert({
|
||||
await knex(TableName.MembershipRole).insert({
|
||||
role: ProjectMembershipRole.Admin,
|
||||
projectMembershipId: projectMembershipV3[0].id
|
||||
membershipId: projectMembershipV3[0].id
|
||||
});
|
||||
|
||||
// create default environments and default folders
|
||||
|
||||
@@ -5,13 +5,12 @@ import { crypto } from "@app/lib/crypto/cryptography";
|
||||
import { initLogger, logger } from "@app/lib/logger";
|
||||
import { superAdminDALFactory } from "@app/services/super-admin/super-admin-dal";
|
||||
|
||||
import { IdentityAuthMethod, OrgMembershipRole, ProjectMembershipRole, TableName } from "../schemas";
|
||||
import { AccessScope, IdentityAuthMethod, OrgMembershipRole, ProjectMembershipRole, TableName } from "../schemas";
|
||||
import { seedData1 } from "../seed-data";
|
||||
|
||||
export async function seed(knex: Knex): Promise<void> {
|
||||
// Deletes ALL existing entries
|
||||
await knex(TableName.Identity).del();
|
||||
await knex(TableName.IdentityOrgMembership).del();
|
||||
|
||||
initLogger();
|
||||
|
||||
@@ -78,34 +77,47 @@ export async function seed(knex: Knex): Promise<void> {
|
||||
isClientSecretRevoked: false
|
||||
}
|
||||
]);
|
||||
await knex(TableName.IdentityOrgMembership).insert([
|
||||
const [orgMembership] = await knex(TableName.Membership)
|
||||
.insert([
|
||||
{
|
||||
actorIdentityId: seedData1.machineIdentity.id,
|
||||
scopeOrgId: seedData1.organization.id,
|
||||
scope: AccessScope.Organization
|
||||
}
|
||||
])
|
||||
.returning("*");
|
||||
await knex(TableName.MembershipRole).insert([
|
||||
{
|
||||
identityId: seedData1.machineIdentity.id,
|
||||
orgId: seedData1.organization.id,
|
||||
membershipId: orgMembership.id,
|
||||
role: OrgMembershipRole.Admin
|
||||
}
|
||||
]);
|
||||
|
||||
const identityProjectMembership = await knex(TableName.IdentityProjectMembership)
|
||||
const identityProjectMembership = await knex(TableName.Membership)
|
||||
.insert({
|
||||
identityId: seedData1.machineIdentity.id,
|
||||
projectId: seedData1.project.id
|
||||
actorIdentityId: seedData1.machineIdentity.id,
|
||||
scopeOrgId: seedData1.organization.id,
|
||||
scope: AccessScope.Project,
|
||||
scopeProjectId: seedData1.project.id
|
||||
})
|
||||
.returning("*");
|
||||
|
||||
await knex(TableName.IdentityProjectMembershipRole).insert({
|
||||
await knex(TableName.MembershipRole).insert({
|
||||
role: ProjectMembershipRole.Admin,
|
||||
projectMembershipId: identityProjectMembership[0].id
|
||||
membershipId: identityProjectMembership[0].id
|
||||
});
|
||||
const identityProjectMembershipV3 = await knex(TableName.IdentityProjectMembership)
|
||||
|
||||
const identityProjectMembershipV3 = await knex(TableName.Membership)
|
||||
.insert({
|
||||
identityId: seedData1.machineIdentity.id,
|
||||
projectId: seedData1.projectV3.id
|
||||
actorIdentityId: seedData1.machineIdentity.id,
|
||||
scopeOrgId: seedData1.organization.id,
|
||||
scope: AccessScope.Project,
|
||||
scopeProjectId: seedData1.projectV3.id
|
||||
})
|
||||
.returning("*");
|
||||
|
||||
await knex(TableName.IdentityProjectMembershipRole).insert({
|
||||
await knex(TableName.MembershipRole).insert({
|
||||
role: ProjectMembershipRole.Admin,
|
||||
projectMembershipId: identityProjectMembershipV3[0].id
|
||||
membershipId: identityProjectMembershipV3[0].id
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user