Skip to content
22 changes: 18 additions & 4 deletions docs/packaging/10.manifest/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -76,12 +76,26 @@ ram.runtime = "1M"
- `helpers_version` (`str`) contains the version of the package helpers used by the application; supported versions are [2.0](/packaging/scripts/helpers_v2.0) and [2.1](/packaging/scripts/helpers_v2.1)
- `architectures` : `"all"` OR a list of supported archs using the `dpkg --print-architecture` nomenclature, i.e. among : `amd64` (= x86 64bit), `i386` (= x86 32bit), `armhf` (= ARM 32bit), `arm64` (= ARM 64bit)
- `multi_instance` (`bool`) : wether or not the app supports being installed multiple time <small>(in which case, during installation, the actual app id is not just the `id` of the manifest, but something like `hellowold__2`, `helloworld__3`, etc. for subsequent installs)</small>
- `ldap` (`bool` OR `"not_relevant"`) : not to confused with the `sso` key : this corresponds to wether or not the app is configured to use YunoHost's LDAP DB as the user account DB. This should be set to `"not_relevant"` if and only if there is no notion of user account for this app (for example, Hextris). LDAP integration is often a prerequisite for the SSO to work.
- `sso` (`bool` OR `"not_relevant"`) : not to be confused with the `ldap` key : this corresponds to wether or not a user is *automatically logged-in* on the app when logged-in on the YunoHost portal. This should be set to `"not_relevant"` if and only if there is no notion of user account for this app (for example, Hextris).
- `ldap` (`bool` OR `"not_relevant"`): see [LDAP and SSO section](#ldap-and-sso) for more details.
- `sso` (multiple values supported): see [LDAP and SSO section](#ldap-and-sso) for more details.
- `disk` (size) : an *estimate* minimum disk requirement. For example: 20M, 400M, 1G, ...
- `ram.build` (size) : an *estimate* minimum ram requirement when building the app (this may be way different than `ram.runtime` because some apps have a peak 1~2G RAM when building sometimes...). For example: 50M, 400M, 1G, ...
- `ram.runtime` (size) : an *estimate* minimum ram requirement when the app is active and running. For example: 50M, 400M, 1G, ...

### LDAP and SSO

For the `ldap` parameter, not to confused with the `sso` key: this corresponds to whether or not the app is configured to use YunoHost's LDAP DB as the user account DB. This should be set to `"not_relevant"` if and only if there is no notion of user account for this app (for example, Hextris). LDAP integration is often a prerequisite for the SSO to work. Setting it to `true` should mean that your app queries the Yunohost LDAP to retrieve accounts and/or groups, otherwise set it to either `false` or `"not_relevant"`.

For the `sso` parameter, not to be confused with the `ldap` key. This corresponds to whether or not a user is *automatically authenticated* on the app when logged-in on the YunoHost portal. Here are the values supported for this parameter:
- `false`: SSO not supported at all.
- `"not_relevant"`: if and only if there is no notion of user account for this app (for example, Hextris).
- `"http_headers"`: for the account provisioned by the HTTP Header: `Ynh-User`, `Ynh-User-Email`, `Ynh-User-Fullname` headers. For PHP apps it could be also provided by the standard `REMOTE_USER` parameter.
- `"auth_basic"`: for apps which takes advantage of the basic authentication ([RFC 7617](https://datatracker.ietf.org/doc/html/rfc7617)).
- `"client_sso"`: for the client apps for which the usage depends on whether the server supports it or not. This is the case for instance with [Element](https://github.com/YunoHost-Apps/element_ynh) or [Agendav](https://github.com/YunoHost-Apps/agendav_ynh). Note this only intended for app fully written in Javascript. If your app have some server side code, you should not use this value.
- `"oidc"`: for apps which use OIDC for authentication. Note for now core don't provide OIDC (until [#676](https://github.com/YunoHost/issues/issues/676) is fixed). For now the apps which use OIDC generally use [the dex_ynh app](https://github.com/YunoHost-Apps/dex_ynh).

Note we intentionally didn't added an `other` value. In case you don't find a value which match your use case, please [create a issue](https://github.com/YunoHost/issues/issues) to discuss to add a new value corresponding to your usage.

## Antifeatures

This section is completely optional and, for most apps, doesn't exist at all.
Expand All @@ -93,7 +107,7 @@ The declaration of antifeatures is a 3-steps process:
- Find the relevant antifeature in [the list of supported antifeatures](https://github.com/YunoHost/apps/blob/master/antifeatures.toml)
- Declare the app's antifeature in the [app catalog](https://github.com/YunoHost/apps/blob/master/apps.toml)
- Describe the app's antifeature in its `manifest.toml`:

```toml
[antifeatures]
arbitrary-limitations.en = "Some description about the specific limitations of this app."
Expand Down Expand Up @@ -171,7 +185,7 @@ The resource section corresponds to recurring app needs that are to be provision

[resources.permissions]
main.url = "/"

[resources.apt]
packages = "nyancat, lolcat, sl"
```
Expand Down
Loading