mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
140 lines
5.3 KiB
TypeScript
140 lines
5.3 KiB
TypeScript
/************************************************************************************************
|
|
*
|
|
* Attention: The credentials below are only for development purposes, it should never be used for production
|
|
*
|
|
************************************************************************************************/
|
|
|
|
import infisical from 'infisical-node';
|
|
import { Key, Membership, MembershipOrg, Organization, User, Workspace } from "../models";
|
|
import { Types } from 'mongoose';
|
|
|
|
export const createTestUserForDevelopment = async () => {
|
|
if (infisical.get('NODE_ENV') === "development") {
|
|
const testUserEmail = "test@localhost.local"
|
|
const testUserPassword = "testInfisical1"
|
|
const testUserId = "63cefa6ec8d3175601cfa980"
|
|
const testWorkspaceId = "63cefb15c8d3175601cfa989"
|
|
const testOrgId = "63cefb15c8d3175601cfa985"
|
|
const testMembershipId = "63cefb159185d9aa3ef0cf35"
|
|
const testMembershipOrgId = "63cefb159185d9aa3ef0cf31"
|
|
const testWorkspaceKeyId = "63cf48f0225e6955acec5eff"
|
|
|
|
const testUser = {
|
|
_id: testUserId,
|
|
email: testUserEmail,
|
|
refreshVersion: 0,
|
|
encryptedPrivateKey: 'ITMdDXtLoxib4+53U/qzvIV/T/UalRwimogFCXv/UsulzEoiKM+aK2aqOb0=',
|
|
firstName: 'Jake',
|
|
iv: '9fp0dZHI+UuHeKkWMDvD6w==',
|
|
lastName: 'Moni',
|
|
publicKey: 'cf44BhkybbBfsE0fZHe2jvqtCj6KLXvSq4hVjV0svzk=',
|
|
salt: 'd8099dc70958090346910fb9639262b83cf526fc9b4555a171b36a9e1bcd0240',
|
|
tag: 'bQ/UTghqcQHRoSMpLQD33g==',
|
|
verifier: '12271fcd50937ca4512e1e3166adaf9d9fc7a5cd0e4c4cb3eda89f35572ede4d9eef23f64aef9220367abff9437b0b6fa55792c442f177201d87051cf77dadade254ff667170440327355fb7d6ac4745d4db302f4843632c2ed5919ebdcff343287a4cd552255d9e3ce81177edefe089617b7616683901475d393405f554634b9bf9230c041ac85624f37a60401be20b78044932580ae0868323be3749fbf856df1518153ba375fec628275f0c445f237446ea4aa7f12c1aa1d6b5fd74b7f2e88d062845a19819ec63f2d2ed9e9f37c055149649461d997d2ae1482f53b04f9de7493efbb9686fb19b2d559b9aa2b502c22dec83f9fc43290dfea89a1dc6f03580b3642b3824513853e81a441be9a0b2fde2231bac60f3287872617a36884697805eeea673cf1a351697834484ada0f282e4745015c9c2928d61e6d092f1b9c3a27eda8413175d23bb2edae62f82ccaf52bf5a6a90344a766c7e4ebf65dae9ae90b2ad4ae65dbf16e3a6948e429771cc50307ae86d454f71a746939ed061f080dd3ae369c1a0739819aca17af46a085bac1f2a5d936d198e7951a8ac3bb38b893665fe7312835abd3f61811f81efa2a8761af5070085f9b6adcca80bf9b0d81899c3d41487fba90728bb24eceb98bd69770360a232624133700ceb4d153f2ad702e0a5b7dfaf97d20bc8aa71dc8c20024a58c06a8fecdad18cb5a2f89c51eaf7'
|
|
}
|
|
|
|
const testWorkspaceKey = {
|
|
_id: new Types.ObjectId(testWorkspaceKeyId),
|
|
workspace: testWorkspaceId,
|
|
encryptedKey: '96ZIRSU21CjVzIQ4Yp994FGWQvDdyK3gq+z+NCaJLK0ByTlvUePmf+AYGFJjkAdz',
|
|
nonce: '1jhCGqg9Wx3n0OtVxbDgiYYGq4S3EdgO',
|
|
sender: '63cefa6ec8d3175601cfa980',
|
|
receiver: '63cefa6ec8d3175601cfa980',
|
|
}
|
|
|
|
const testWorkspace = {
|
|
_id: new Types.ObjectId(testWorkspaceId),
|
|
name: 'Example Project',
|
|
organization: testOrgId,
|
|
environments: [
|
|
{
|
|
_id: '63cefb15c8d3175601cfa98a',
|
|
name: 'Development',
|
|
slug: 'dev'
|
|
},
|
|
{
|
|
_id: '63cefb15c8d3175601cfa98b',
|
|
name: 'Test',
|
|
slug: 'test'
|
|
},
|
|
{
|
|
_id: '63cefb15c8d3175601cfa98c',
|
|
name: 'Staging',
|
|
slug: 'staging'
|
|
},
|
|
{
|
|
_id: '63cefb15c8d3175601cfa98d',
|
|
name: 'Production',
|
|
slug: 'prod'
|
|
}
|
|
],
|
|
}
|
|
|
|
const testOrg = {
|
|
_id: testOrgId,
|
|
name: 'Jake\'s organization'
|
|
}
|
|
|
|
const testMembershipOrg = {
|
|
_id: testMembershipOrgId,
|
|
organization: testOrgId,
|
|
role: 'owner',
|
|
status: 'accepted',
|
|
user: testUserId,
|
|
}
|
|
|
|
const testMembership = {
|
|
_id: testMembershipId,
|
|
role: 'admin',
|
|
user: testUserId,
|
|
workspace: testWorkspaceId
|
|
}
|
|
|
|
try {
|
|
// create user if not exist
|
|
const userInDB = await User.findById(testUserId)
|
|
if (!userInDB) {
|
|
await User.create(testUser)
|
|
}
|
|
|
|
// create org if not exist
|
|
const orgInDB = await Organization.findById(testOrgId)
|
|
if (!orgInDB) {
|
|
await Organization.create(testOrg)
|
|
}
|
|
|
|
// create membership org if not exist
|
|
const membershipOrgInDB = await MembershipOrg.findById(testMembershipOrgId)
|
|
if (!membershipOrgInDB) {
|
|
await MembershipOrg.create(testMembershipOrg)
|
|
}
|
|
|
|
// create membership
|
|
const membershipInDB = await Membership.findById(testMembershipId)
|
|
if (!membershipInDB) {
|
|
await Membership.create(testMembership)
|
|
}
|
|
|
|
// create workspace if not exist
|
|
const workspaceInDB = await Workspace.findById(testWorkspaceId)
|
|
if (!workspaceInDB) {
|
|
await Workspace.create(testWorkspace)
|
|
}
|
|
|
|
// create workspace key if not exist
|
|
const workspaceKeyInDB = await Key.findById(testWorkspaceKeyId)
|
|
if (!workspaceKeyInDB) {
|
|
await Key.create(testWorkspaceKey)
|
|
}
|
|
|
|
/* eslint-disable no-console */
|
|
console.info(`DEVELOPMENT MODE DETECTED: You may login with test user with email: ${testUserEmail} and password: ${testUserPassword}`)
|
|
/* eslint-enable no-console */
|
|
|
|
} catch (e) {
|
|
/* eslint-disable no-console */
|
|
console.error(`Unable to create test user while booting up [err=${e}]`)
|
|
/* eslint-enable no-console */
|
|
}
|
|
}
|
|
} |