a4c0328c53
* handle files in rest connector
* fetch presigned url and return
* further updates to handle files in rest connector
* remove unused important and fix extension bug
* wrong expiry param
* tests
* add const for temp bucket
* handle ttl on bucket
* more bucket ttl work
* split out fileresponse and xmlresponse into utils
* lint
* remove log
* fix tests
* some pr comments
* update function naming and lint
* adding back needed response for frontend
* use fsp
* handle different content-disposition and potential path traversal
* add test container for s3 / minio
* add test case for filename* and ascii filenames
* move tests into separate describe
* remove log
* up timeout
* switch to minio image instead of localstack
* use minio image instead of s3 for testing
* stream file upload instead
* use streamUpload and update signatures
* update bucketcreate return
* throw real error
* tidy up
* pro
* pro ref fix?
* pro fix
* pro fix?
* move minio test provider to backend-core
* update email builder to allow attachments
* testing for sending files via smtp
* use backend-core minio test container in server
* handle different types of url
* fix minio test provider
* test with container host
* lint
* try different hostname?
* Revert "try different hostname?"
This reverts commit cfefdb8ded
.
* fix issue with fetching of signed url with test minio
* update autoamtion attachments to take filename and url
* fix tests
* pro ref
* fix parsing of url object
* pr comments and linting
* pro ref
* fix pro again
* fix pro
* account-portal
* fix null issue
* fix ref
* ref
* When sending a file attachment in email fetch it directly from our object store
* add more checks to ensure we're working with a signed url
* update test to account for direct object store read
* formatting
* fix time issues within test
* update bucket and path extraction to regex
* use const in regex
* pro
* Updating TTL handling in upload functions (#13539)
* Updating TTL handling in upload functions
* describe ttl type
* account for ttl creation in existing buckets and update types
* fix tests
* pro
* pro
34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import { GenericContainer, Wait, StartedTestContainer } from "testcontainers"
|
|
import { AbstractWaitStrategy } from "testcontainers/build/wait-strategies/wait-strategy"
|
|
import env from "../../../src/environment"
|
|
|
|
let container: StartedTestContainer | undefined
|
|
|
|
class ObjectStoreWaitStrategy extends AbstractWaitStrategy {
|
|
async waitUntilReady(container: any, boundPorts: any, startTime?: Date) {
|
|
const logs = Wait.forListeningPorts()
|
|
await logs.waitUntilReady(container, boundPorts, startTime)
|
|
}
|
|
}
|
|
|
|
export async function start(): Promise<void> {
|
|
container = await new GenericContainer("minio/minio")
|
|
.withExposedPorts(9000)
|
|
.withCommand(["server", "/data"])
|
|
.withEnvironment({
|
|
MINIO_ACCESS_KEY: "budibase",
|
|
MINIO_SECRET_KEY: "budibase",
|
|
})
|
|
.withWaitStrategy(new ObjectStoreWaitStrategy().withStartupTimeout(30000))
|
|
.start()
|
|
|
|
const port = container.getMappedPort(9000)
|
|
env._set("MINIO_URL", `http://0.0.0.0:${port}`)
|
|
}
|
|
|
|
export async function stop() {
|
|
if (container) {
|
|
await container.stop()
|
|
container = undefined
|
|
}
|
|
}
|