19declare(strict_types=1);
48 array|\ArrayAccess &$define,
49 array|\ArrayAccess &$implement,
50 array|\ArrayAccess &$use,
51 array|\ArrayAccess &$contribute,
52 array|\ArrayAccess &$seek,
53 array|\ArrayAccess &$provide,
54 array|\ArrayAccess &$pull,
55 array|\ArrayAccess &$internal,
58 $define[] = FileDeliveryServices::class;
60 $contribute[Agent::class] =
static fn() => new \ILIAS\FileDelivery\Setup\Agent(
64 $contribute[PublicAsset::class] = fn() =>
new Endpoint($this,
"deliver.php");
69 $internal[ResponseBuilder::class] =
static fn() => ResponseBuilderFactory::fromArtefact();
77 $internal[DataSigning::class] =
static fn() =>
new DataSigner(
78 SecretKeyRotation::fromArtefact(KeyRotationObjective::PATH())
81 $implement[DataSigning::class] =
static fn() => $internal[DataSigning::class];
83 $internal[StreamDelivery::class] = (
static fn() =>
new StreamDelivery(
84 $use[DataSigning::class],
85 $use[GlobalHttpState::class],
86 $internal[ResponseBuilder::class],
87 $internal[PHPResponseBuilder::class],
88 $internal[IsolationConfig::class],
91 $internal[LegacyDelivery::class] = (
static fn() =>
new LegacyDelivery(
92 $use[GlobalHttpState::class],
93 $internal[ResponseBuilder::class],
94 $internal[PHPResponseBuilder::class],
95 $internal[IsolationConfig::class],
98 $internal[FileDeliveryServices::class] = (
static fn() =>
new Services(
99 $internal[StreamDelivery::class],
100 $internal[LegacyDelivery::class],
101 $use[DataSigning::class],
102 $use[GlobalHttpState::class],
103 $internal[IsolationConfig::class],
104 $use[HttpPathProvider::class],
107 $implement[FileDeliveryServices::class] =
static fn() => $internal[FileDeliveryServices::class];
109 $contribute[EntryPoint::class] =
static fn() => new \ILIAS\FileDelivery\EntryPoint(
110 $internal[FileDeliveryServices::class],
111 $use[GlobalHttpState::class],
120 $provide[FilePayloadFactory::class] =
static fn() => $internal[FilePayloadFactory::class];
An endpoint is a PHP file that produces output via HTTP.
Builds the payload of a delivering activity and describes its shape.
Builds the ResponseBuilder an installation is set up for.
Read-only configuration of the IRSS User Content Isolation feature.
static fromArtefact(?string $path=null)
Load the configuration from the static artefact written by the setup.
Key rotation can provide an extra layer of mitigation against an attacker discovering a secret key.
init(array|\ArrayAccess &$define, array|\ArrayAccess &$implement, array|\ArrayAccess &$use, array|\ArrayAccess &$contribute, array|\ArrayAccess &$seek, array|\ArrayAccess &$provide, array|\ArrayAccess &$pull, array|\ArrayAccess &$internal,)
An public asset is a file or folder that should be served via the web.
Interface GlobalHttpState.
Tells under which URL this ILIAS installation is reached, e.g.
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.