a54fa8c28f
* feat(server): add server authz pipeline rework first sketch * feat(server authz): add new server authz middleware poc implementation * test(server authz): add unittests for the new server authz workflow * feat(wip rework of fileuploads vs blob storage): add basim impl of separate blob storage service * feat(fileimport service): refactored file import service to utilize the new asssetstorage service * refactor(server errors): refactor server errors to use the shared module definitions Now all the errors inherit from BaseError * refactor(fileimport service): cleanup after refactor * feat(frontend fileimports): use the new blob storage for downloading the original file * refactor(server fileimports): clean up the remnants of S3 storage from file imports * refactor(server authz): centralize generic authz pipeline configs * refactor(server blob storage): refactor / rename everything to use the `blob-storage` name * ci(circleci): add s3 objectstorage environment variables * ci(circleci): fix missing env variables * ci(circleci): add minio test container * ci(circleci): fix minio app startup * ci(circleci): enable circleci remote docker * ci(circleci): fix minio startup * ci(cirleci): detach and wait properly for minio to start * ci(circleci): revert to additional minio img config, it only fails when the container is stopped ?! * ci(circleci): disable file uploads * fix(fileimports): update with blob storage refactor leftovers * feat(server blob storage): add blob storage graphql api * refactor(server errors): merge new errors to shared module * fix(server comments rte): fix import for RTE error * chore(fileimports): remove node-fetch from dependency * chore(server): remove body parser dependency * fix(server blob storage): fix gql api * fix(frontend): fix fileupload item not loading the new upload status, cause of premature event fire * feat(server blob storage): fix file size limit and allow for public streams * Update packages/server/modules/blobstorage/graph/schemas/blobstorage.graphql Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com> * chore(blobstorage): fix PR review issues * fix(server): fix import bugs * test(server): blob storage first test * test(server blob services): add tests for blob storage services * test(server blob storage): add service and rest api tests * test(server blob storage): add server blob storage graphql api tests * feat(server blob storage): store and make available blob fileHash attribute * feat(server authz): add fatal failure option to server authz pipeline Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
32 lines
820 B
JavaScript
32 lines
820 B
JavaScript
/* istanbul ignore file */
|
|
const crs = require('crypto-random-string')
|
|
const { range } = require('lodash')
|
|
const knex = require('@/db/knex')
|
|
const BlobStorage = () => knex('blob_storage')
|
|
|
|
const fakeIdGenerator = () => crs({ length: 10 })
|
|
const createBlobs = async ({ streamId, number, fileSize = 1 }) =>
|
|
await Promise.all(
|
|
range(number).map(async (num) => {
|
|
const id = fakeIdGenerator()
|
|
const dbFile = {
|
|
id: `${num}`.padStart(10, '0'),
|
|
streamId,
|
|
userId: id,
|
|
objectKey: id,
|
|
fileName: `${id}.${`${num}`.padStart(10, '0')}`,
|
|
fileType: id,
|
|
createdAt: new Date(num * 10_000),
|
|
fileSize,
|
|
fileHash: id
|
|
}
|
|
await BlobStorage().insert(dbFile)
|
|
return dbFile
|
|
})
|
|
)
|
|
|
|
module.exports = {
|
|
fakeIdGenerator,
|
|
createBlobs
|
|
}
|