Difference between revisions of "stoney storage: OpenLDAP directory data organisation"

From stoney cloud
Jump to: navigation, search
[checked revision][checked revision]
(Storage Account Example)
(Storage - Configuration - Resellers)
 
(40 intermediate revisions by the same user not shown)
Line 3: Line 3:
  
 
= Data Organisation =
 
= Data Organisation =
The following chapters explain the data organisation of the stoney cloud OpenLDAP directory, in this case we looking at the [https://www.stoney-storage.com/ stoney storage] service.
+
The following chapters explain the data organisation of the stoney cloud OpenLDAP directory. In this case we are looking at the [https://www.stoney-storage.com/ stoney storage] service.
  
 
= Storage =
 
= Storage =
The following LDIF shows the '''storage''' entry for the stoney storage service:
+
The following LDIF shows the '''storage''' LDAP entry for the stoney storage service:
dn: ou=storage,ou=services,dc=stoney-cloud,dc=org
+
<source lang="ldif">
objectclass: organizationalUnit
+
dn: ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: top
+
objectclass: organizationalUnit
ou: storage
+
objectclass: top
 +
ou: storage
 +
description: The sub tree for the Nextcloud based stoney storage service.
 +
</source>
  
== Storage Configuration ==
+
== Storage - Configuration ==
 
The sub tree for the configuration of the storage storage service:
 
The sub tree for the configuration of the storage storage service:
dn: ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
+
<source lang="ldif">
objectclass: top
+
dn: ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: organizationalUnit
+
objectclass: top
ou: configuration
+
objectclass: organizationalUnit
description: The sub tree for the configuration of the storage storage service.
+
ou: configuration
 +
description: The sub tree for the configuration of the Nextcloud based stoney storage service.
 +
</source>
  
=== Storage Provisioning Daemon ===
+
=== Storage - Configuration - Provisioning daemon ===
 
See the [[stoney_core:_OpenLDAP_directory_data_organisation#Services | Services description]] for the naming convention.
 
See the [[stoney_core:_OpenLDAP_directory_data_organisation#Services | Services description]] for the naming convention.
  
 
The sub tree for the configuration of the '''prov-storage-nextcloud''' daemon:
 
The sub tree for the configuration of the '''prov-storage-nextcloud''' daemon:
dn: ou=prov-storage-nextcloud,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
+
<source lang="ldif">
objectclass: top
+
dn: ou=prov-storage-nextcloud,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: organizationalUnit
+
objectclass: top
objectclass: sstServiceConfigurationObjectClass
+
objectclass: organizationalUnit
ou: prov-storage-nextcloud
+
objectclass: sstServiceConfigurationObjectClass
description: The sub tree for the configuration of the prov-storage-nextcloud daemon.
+
ou: prov-storage-nextcloud
sstIsActive: TRUE
+
description: The sub tree for the configuration of the prov-storage-nextcloud daemon.
 +
sstIsActive: TRUE
 +
</source>
  
 
The following table describes the different attributes:
 
The following table describes the different attributes:
 
{| style="border-spacing:0;"
 
{| style="border-spacing:0;"
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Attribute'''
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Attribute'''
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Objectclass'''
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Existence'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Existence'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Mandatory'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Mandatory'''</center>
 
| style="border:0.002cm solid #000000;padding:0.097cm;"| '''Description'''
 
| style="border:0.002cm solid #000000;padding:0.097cm;"| '''Description'''
 +
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| ou
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| organizationalUnit
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The name of the leaf.
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServiceConfigurationObjectClass
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
Line 47: Line 63:
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsActive
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsActive
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServiceConfigurationObjectClass
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Is the entry active? Either true (yes) or false (no).
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Is the entry active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no).
  
 +
The default value is <code>TRUE</code>.
 
|}
 
|}
  
Line 56: Line 74:
 
* '''x''': Mandatory in all cases.
 
* '''x''': Mandatory in all cases.
  
=== Storage Reseller ===
+
=== Storage - Configuration - Reseller ===
 
The sub tree for the reseller specific storage storage service settings:
 
The sub tree for the reseller specific storage storage service settings:
dn: ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
+
<source lang="ldif">
objectclass: top
+
dn: ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: organizationalUnit
+
objectclass: top
ou: reseller
+
objectclass: organizationalUnit
description: The sub tree for the reseller specific storage storage service settings.
+
ou: reseller
 +
description: The sub tree for the reseller specific configuration of the Nextcloud based stoney storage service.
 +
</source>
  
 
The sub tree for the specific storage storage service settings for the reseller Reseller Ltd. with the uid 4000000.
 
The sub tree for the specific storage storage service settings for the reseller Reseller Ltd. with the uid 4000000.
dn: uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
+
<source lang="ldif">
objectclass: top
+
dn: uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: sstReseller
+
objectclass: top
objectclass: sstServiceConfigurationObjectClass
+
objectclass: sstReseller
uid: 4000000
+
objectclass: sstServiceConfigurationObjectClass
o: Reseller Ltd.
+
uid: 4000000
description: The sub tree for the specific storage storage service settings for the reseller Reseller Ltd. with the uid 4000000.
+
o: Reseller Ltd.
sstIsActive: TRUE
+
description: The sub tree for the specific storage storage service settings for the reseller Reseller Ltd. with the uid 4000000.
sstIsDefault: TRUE
+
sstIsActive: TRUE
sstBelongsToResellerUID: 4000000
+
sstIsCompany: TRUE
 +
sstIsDefault: TRUE
 +
sstBelongsToResellerUID: 4000000
 +
</source>
  
 
The following table describes the different attributes:
 
The following table describes the different attributes:
 
{| style="border-spacing:0;"
 
{| style="border-spacing:0;"
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Attribute'''
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Attribute'''
 +
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Objectclass'''
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Existence'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Existence'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Mandatory'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Mandatory'''</center>
Line 87: Line 111:
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| uid
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| uid
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstReseller
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| A unique integer value with 7 digits or more. For example: 4000000.  
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| A unique integer value with 7 digits or more.  
 +
 
 +
For example: <code>uid: 4000000</code> corresponds with <code>sstBelongsToResellerUID: 4000000</code>.
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| o
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| organizationName
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstReseller
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>1</sup></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The company name, for example: stepping stone GmbH.  
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The company name.
 +
 
 +
For example: <code>stepping stone AG</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| givenName
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstReseller
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>1</sup></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Name.
 +
 
 +
For example: <code>Hans</code>.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| surname
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstReseller
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>1</sup></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Surname.
 +
 
 +
For example: <code>Muster</code>.
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstReseller
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The description of the leaf.  
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The description of the leaf.
 +
 
 +
For example: <code>The sub tree for the specific stoney storage service settings for the reseller Reseller Ltd. with the uid 4000000.</code>
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsActive
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsActive
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstReseller
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
Line 116: Line 172:
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Is the entry active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no).
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Is the entry active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no).
 +
 +
The default value is <code>TRUE</code>.
 +
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsCompany
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstReseller
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Do we have an organisation or a private person? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no).
 +
 +
The default value is <code>TRUE</code>.
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsDefault
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsDefault
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServiceConfigurationObjectClass
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Is this leaf a default entry? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). If <code>sstIsDefault</code> is set to <code>TRUE</code>, this entry acts as a fall back configuration. In other words: If a reseller doesn't have his own stoney storage service configuration, then this one will be used.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Contains the leaf a default entry? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). If <code>sstIsDefault</code> is set to <code>TRUE</code>, this entry acts as a fall back configuration. In other words: If a reseller doesn't have his own storage storage service configuration, then this on will be used.
+
 
 +
As you would normally have only one default configuration per cloud, the default value is <code>FALSE</code>.
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToResellerUID
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToResellerUID
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstReseller
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the reseller UID the leaf belongs to. A unique value with 7 digits or more. For example: 4000000.
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the reseller UID the leaf belongs to. A unique value with 7 digits or more.
 +
 
 +
For example: <code>sstBelongsToResellerUID: 4000000</code> corresponds with <code>uid: 4000000</code>.
  
 
|}
 
|}
Line 137: Line 212:
 
Legend:
 
Legend:
 
* '''x''': Mandatory in all cases.
 
* '''x''': Mandatory in all cases.
 +
* '''x<sup>1</sup>''': If <code>sstIsCompany</code> is set to <code>TRUE</code>, the <code>organizationName</code> must be set. Otherwise <code>givenName</code> and <code>surname</code> must be set.
 +
==== Storage - Configuration - Reseller - Account defaults ====
 +
<span style="color: red">Work in progress ...</span>
  
==== Storage Reseller Storage Account Defaults ====
+
The sub tree for the storage account defaults for the storage storage service for the reseller Reseller Ltd. with the uid 4000000:
The sub tree for the storage account defaults for the storage storage service for the reseller Reseller Ltd. with the uid 4000000:  
+
<source lang="ldif">
dn: ou=defaults,uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
+
dn: ou=defaults,uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: top
+
objectclass: top
objectclass: organizationalUnit
+
objectclass: organizationalUnit
objectclass: sstStorage
+
objectclass: sstStorage
ou: defaults
+
ou: defaults
description: The sub tree for the default settings of the storage storage service for the reseller Reseller Ltd. with the uid 4000000.
+
description: The sub tree for the default settings of the storage storage service for the reseller Reseller Ltd. with the uid 4000000.
loginShell: /bin/sh
+
loginShell: /bin/sh
shadowMax: 99999
+
shadowMax: 99999
shadowWarning: 7
+
shadowWarning: 7
shadowFlag: 134539460
+
shadowFlag: 134539460
sstStorageWarningDays: 1
+
sstStorageWarningDays: 1
sstStorageWarningNumbers: 0
+
sstStorageWarningNumbers: 0
sstStorageWarningOn: FALSE
+
sstStorageWarningOn: FALSE
sstNotificationWarningLevel: 85
+
sstNotificationWarningLevel: 85
sstNotificationWarningMedium: mail
+
sstNotificationWarningMedium: mail
sstStorageSize: 0
+
sstStorageSize: 0
sstIncrementSize: 0
+
sstIncrementSize: 0
sstStorageIntervalHourly: 0
+
sstStorageIntervalHourly: 0
sstStorageIntervalDaily: 7
+
sstStorageIntervalDaily: 7
sstStorageIntervalWeekly: 4
+
sstStorageIntervalWeekly: 4
sstStorageIntervalMonthly: 3
+
sstStorageIntervalMonthly: 3
sstStorageIntervalYearly: 0
+
sstStorageIntervalYearly: 0
sstUseSelfcare: FALSE
+
sstUseSelfcare: FALSE
sstUseSSH: TRUE
+
sstUseSSH: TRUE
sstIsActive: TRUE
+
sstIsActive: TRUE
 +
</source>
  
 
The following table describes the different attributes:
 
The following table describes the different attributes:
Line 290: Line 369:
 
|-
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationWarningLevel
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationWarningLevel
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
Line 389: Line 468:
 
* '''x''': Mandatory in all cases.
 
* '''x''': Mandatory in all cases.
  
==== Storage Reseller Storage Notification Settings ====
+
==== Storage - Configuration - Reseller - Notification settings ====
 
The sub tree stores the notification information for the storage storage service for the reseller Reseller Ltd. with the uid 4000000. This information is used independently of the notification settings of the users. The idea is, that the reseller can receive notifications for a customer and react on the received information (for example, when the quota has been reached):
 
The sub tree stores the notification information for the storage storage service for the reseller Reseller Ltd. with the uid 4000000. This information is used independently of the notification settings of the users. The idea is, that the reseller can receive notifications for a customer and react on the received information (for example, when the quota has been reached):
dn: ou=notifications,uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
+
<source lang="ldif">
objectclass: top
+
dn: ou=notifications,uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: organizationalUnit
+
objectclass: top
objectclass: sstNotificationObjectClass
+
objectclass: organizationalUnit
ou: notifications
+
objectclass: sstNotificationObjectClass
description: The sub tree stores the notification information for the storage storage service for the reseller Reseller Ltd. with the uid 4000000. This information is used independently of the notification settings of the users.
+
ou: notifications
sstMailTo: Support stepping stone GmbH <support@stepping-stone.ch>
+
description: The sub tree stores the notification information for the storage storage service for the reseller Reseller Ltd. with the uid 4000000. This information is used independently of the notification settings of the users.
sstNotificationWarning: quota
+
sstMailTo: Support stepping stone GmbH <support@stepping-stone.ch>
sstNotificationWarning: schedule
+
sstNotificationWarning: quota
sstNotificationWarning: unsuccessful
+
sstNotificationWarning: schedule
 +
sstNotificationWarning: unsuccessful
 +
</source>
  
 
The following table describes the different attributes:
 
The following table describes the different attributes:
Line 448: Line 529:
 
* '''x''': Mandatory in all cases.
 
* '''x''': Mandatory in all cases.
  
==== Storage Reseller Storage Account Settings ====
+
==== Storage - Configuration - Reseller - Account Settings ====
The  sub tree stores the information about what can be modified in which scope for the storage storage service for the reseller Reseller Ltd. with the uid 4000000:  
+
The  sub tree stores the information about what can be modified in which scope for the storage storage service for the reseller Reseller Ltd. with the uid 4000000:
dn: ou=settings,uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
+
<source lang="ldif">
objectclass: top
+
dn: ou=settings,uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: organizationalUnit
+
objectclass: top
objectclass: sstServiceSettingsObjectClass
+
objectclass: organizationalUnit
ou: settings
+
objectclass: sstServiceSettingsObjectClass
description: This sub tree stores the information about what can be modified in which scope.
+
ou: settings
sstVolumeCapacityDefault: 1073741824
+
description: This sub tree stores the information about what can be modified in which scope.
sstVolumeCapacityMin: 1073741824
+
sstVolumeCapacityDefault: 1073741824
sstVolumeCapacityMax: 536870912000
+
sstVolumeCapacityMin: 1073741824
sstVolumeCapacityStep: 1073741824
+
sstVolumeCapacityMax: 536870912000
sstNotificationWarningMediumChange: FALSE
+
sstVolumeCapacityStep: 1073741824
sstNotificationWarningMediumAdd: TRUE
+
sstNotificationWarningMediumChange: FALSE
sstQuotaChange: FALSE
+
sstNotificationWarningMediumAdd: TRUE
sstSendCredentialsTo: owner
+
sstQuotaChange: FALSE
sstMailFrom: Support stepping stone GmbH <support@stepping-stone.ch>
+
sstSendCredentialsTo: owner
preferredLanguage: de-CH
+
sstMailFrom: Support stepping stone GmbH <support@stepping-stone.ch>
 +
preferredLanguage: de-CH
 +
</source>
  
 
Human readable format:
 
Human readable format:
Line 651: Line 734:
 
* '''x''': Mandatory in all cases.
 
* '''x''': Mandatory in all cases.
  
==== Storage Reseller Templates ====
+
==== Storage - Configuration - Reseller - Templates ====
 
This sub tree contains the templates for the storage storage service for the reseller Reseller Ltd. with the uid 4000000:
 
This sub tree contains the templates for the storage storage service for the reseller Reseller Ltd. with the uid 4000000:
dn: ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
+
<source lang="ldif">
objectclass: top
+
dn: ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: organizationalUnit
+
objectclass: top
ou: templates
+
objectclass: organizationalUnit
description: This sub tree contains the templates for the storage storage service for the reseller Reseller Ltd. with the uid 4000000.
+
ou: templates
 +
description: This sub tree contains the templates for the storage storage service for the reseller Reseller Ltd. with the uid 4000000.
 +
</source>
  
===== Storage Reseller Credentials Templates =====
+
===== Storage - Configuration - Reseller - Credentials templates =====
This sub tree contains the quota templates for the storage storage service:  
+
This sub tree contains the credentials templates for the storage storage service:
dn: ou=credentials,ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
+
<source lang="ldif">
objectclass: top
+
dn: ou=credentials,ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: organizationalUnit
+
objectclass: top
objectclass: sstTemplateSetup
+
objectclass: organizationalUnit
ou: credentials
+
objectclass: sstTemplateSetup
description: This leaf contains the credential templates for the storage storage service.
+
ou: credentials
sstMailFrom: Support stepping stone GmbH <support@stepping-stone.ch>
+
description: This leaf contains the credential templates for the storage storage service.
sstMailTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/credentials/credentials_mail
+
sstMailFrom: Support stepping stone GmbH <support@stepping-stone.ch>
sstMailTemplateFormatSource: txt
+
sstMailTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/credentials/credentials_mail
sstMailTemplateFormatTarget: txt
+
sstMailTemplateFormatSource: txt
sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/credentials/credentials_attachment
+
sstMailTemplateFormatTarget: txt
sstTemplateFormatSource: odt
+
sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/credentials/credentials_attachment
sstTemplateFormatTarget: pdf
+
sstTemplateFormatSource: odt
 +
sstTemplateFormatTarget: pdf
 +
</source>
  
 
The following table describes the different attributes:
 
The following table describes the different attributes:
Line 804: Line 891:
 
* '''x''': Mandatory in all cases.
 
* '''x''': Mandatory in all cases.
  
====== Credentials Place Holders E-Mail (txt/html) ======
+
====== Storage - Configuration - Reseller - Credentials templates email place holders (txt/html) ======
 
Address with an example:
 
Address with an example:
{$company}                        stepping stone GmbH
+
<source lang="text">
{$salutation} {$name} {$surname}  Mr. Michael Eichenberger
+
{$company}                        stepping stone AG
{$address}                        Neufeldstrasse 9
+
{$salutation} {$name} {$surname}  Mr. Michael Eichenberger
{$country}-{$zip} {$location}      CH-3013 Bern
+
{$address}                        Wasserwerkgasse79
 +
{$country}-{$zip} {$location}      CH-3012 Bern
 +
</source>
  
 
Date with an example:
 
Date with an example:
{$day}                            16
+
<source lang="text">
{$month}                          August
+
{$day}                            11
{$year}                            2013
+
{$month}                          August
 +
{$year}                            2019
 +
</source>
 +
 
  
 
Storage Service with an example:
 
Storage Service with an example:
{$uid}                            4000124
+
<source lang="text">
{$password}                        XlWz4Qa#
+
{$uid}                            4000124
 +
{$password}                        XlWz4Qa#
 +
</source>
 +
 
  
 
Optional Values:
 
Optional Values:
{$externalID}       12345
+
<source lang="text">
 +
{$externalID}                     12345
 +
</source>
  
====== Credentials Place Holders LibreOffice (odt) ======
+
====== Storage - Configuration - Reseller - Credentials templates LibreOffice place holders (odt) ======
 
LibreOffice (odt) templates have the same place holders as the E-Mail (text/html) templates. The only thing that changes, are the definitions. Instead of <code>{$placeholder}</code> we have <code>&#123;&#123;placeholder&#125;&#125;</code>.
 
LibreOffice (odt) templates have the same place holders as the E-Mail (text/html) templates. The only thing that changes, are the definitions. Instead of <code>{$placeholder}</code> we have <code>&#123;&#123;placeholder&#125;&#125;</code>.
  
===== Storage Reseller Quota Templates =====
+
===== Storage - Configuration - Reseller - Quota templates =====
 
Warns the user when the storage is running out of space (quota).
 
Warns the user when the storage is running out of space (quota).
  
This sub tree contains the quota templates for the storage storage service:  
+
This sub tree contains the quota templates for the storage storage service:
dn: ou=quota,ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
+
<source lang="ldif">
objectclass: top
+
dn: ou=quota,ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: organizationalUnit
+
objectclass: top
objectclass: sstTemplateSetup
+
objectclass: organizationalUnit
ou: quota
+
objectclass: sstTemplateSetup
description: This leaf contains the quota templates for the storage storage service.
+
ou: quota
sstMailFrom: Support stepping stone GmbH <support@stepping-stone.ch>
+
description: This leaf contains the quota templates for the storage storage service.
sstMailTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/quota/quota_mail
+
sstMailFrom: Support stepping stone GmbH <support@stepping-stone.ch>
sstMailTemplateFormatSource: txt
+
sstMailTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/quota/quota_mail
sstMailTemplateFormatTarget: txt
+
sstMailTemplateFormatSource: txt
sstMailTemplateReseller: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/quota/quota_mail_reseller
+
sstMailTemplateFormatTarget: txt
sstMailTemplateFormatSource: txt
+
sstMailTemplateReseller: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/quota/quota_mail_reseller
sstMailTemplateFormatTarget: txt
+
sstMailTemplateFormatSource: txt
 +
sstMailTemplateFormatTarget: txt
 +
</source>
  
 
The following table describes the different attributes:
 
The following table describes the different attributes:
Line 978: Line 1,077:
 
* '''x<sup>1</sup>''': Must exist, if <code>sstMailTo</code> is set.
 
* '''x<sup>1</sup>''': Must exist, if <code>sstMailTo</code> is set.
  
====== Quota Place Holders E-Mail (txt/html) ======
+
====== Storage - Configuration - Reseller - Quota templates email place holders (txt/html) ======
 
An example:
 
An example:
{$salutation}      Mr.
+
<source lang="text">
{$surname}          Eichenberger
+
{$salutation}      Mr.
{$uid}              3723707
+
{$surname}          Eichenberger
{$percent}          98
+
{$uid}              3723707
{$quota}            100
+
{$percent}          98
{$storage_size}     40
+
{$quota}            100
{$snapshot_size}    48
+
{$storage_size}     40
 +
{$snapshot_size}    48
 +
</source>
  
 
Optional Values:
 
Optional Values:
{$externalID}      12345
+
<source lang="text">
 +
{$externalID}      12345
 +
</source>
  
====== Quota Place Holders LibreOffice (odt) ======
+
====== Storage - Configuration - Reseller - Quota templates LibreOffice place holders (odt) ======
 
LibreOffice (odt) templates have the same place holders as the E-Mail (text/html) templates. The only thing that changes, are the definitions. Instead of <code>{$placeholder}</code> we have <code>&#123;&#123;placeholder&#125;&#125;</code>.
 
LibreOffice (odt) templates have the same place holders as the E-Mail (text/html) templates. The only thing that changes, are the definitions. Instead of <code>{$placeholder}</code> we have <code>&#123;&#123;placeholder&#125;&#125;</code>.
  
== Storage Accounts ==
+
== Storage - Accounts ==
 
The sub tree for the accounts of the stoney storage service:
 
The sub tree for the accounts of the stoney storage service:
dn: ou=accounts,ou=storage,ou=services,dc=stoney-cloud,dc=org
+
<source lang="ldif">
objectclass: top
+
dn: ou=accounts,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: organizationalUnit
+
objectclass: top
ou: accounts
+
objectclass: organizationalUnit
description: The sub tree for the accounts of the stoney storage service.
+
ou: accounts
 
+
description: The sub tree for the accounts of the stoney storage service.
=== Storage Account Example ===
+
</source>
The  stoney storage service directory structure, owners, groups and permissions are as follows:
+
* PHP-FPM process: user '''<UID>-app''', group '''<UID>'''
+
* PHP-FPM unix socket: user '''root''', group '''www-srv''', permission '''0660'''
+
* Apache process: user '''apache''', group '''apache''' (part of '''www-srv''')
+
 
+
<source lang="text">
+
Path                                                      Perms Owner    Group        Descriptions
+
  
/var/storage/4/834/731/3731834/default                                                  Symbolic link to "app-0"
+
=== Storage - Account example ===
/var/storage/4/834/731/3731834/app-0                      0755  root      root
+
The following example shows the OpenLDAP directory entry for the storage storage account with the uid number 3730083:
/var/storage/4/834/731/3731834/app-0/htdocs              0755  root      root          Web server document root
+
<source lang="ldif">
/var/storage/4/834/731/3731834/app-0/htdocs/apps          2750  <UID>-app <UID>        Nextcloud app directory (PHP-FPM needs write permissions)
+
dn: uid=3730083,ou=accounts,ou=storage,ou=services,dc=stoney-cloud,dc=org
/var/storage/4/834/731/3731834/app-0/htdocs/themes        2750  <UID>-app <UID>        Nextcloud themes directory (PHP-FPM needs write permissions)
+
objectclass: top
/var/storage/4/834/731/3731834/app-0/tmp                                                Nextcloud tmp directory (PHP-FPM needs write permissions)
+
objectclass: account
/var/storage/4/834/731/3731834/app-0/data                                              Nextcloud data
+
objectclass: posixAccount
 +
objectclass: shadowAccount
 +
objectclass: sstStorage
 +
objectclass: sstProvisioning
 +
objectclass: sstRelationship
 +
uid: 3730083
 +
userPassword: {SSHA}E/KLUgeAtApAPQ7mG2GMddCxTE9m9QOS
 +
uidNumber: 3730083
 +
gidNumber: 3730083
 +
cn: 3730083.stoney-storage.com
 +
gecos: 3730083.stoney-storage.com
 +
homeDirectory: /var/storage/3/083/730/3730083
 +
loginShell: /bin/false
 +
shadowFlag: 134539460
 +
shadowLastChange: 11108
 +
shadowMax: 99999
 +
shadowWarning: 7
 +
sstIsActive: TRUE
 +
sstNotificationWarningOn: TRUE
 +
sstNotificationWarning: quota
 +
sstNotificationWarningMedium: mail
 +
sstInformPersonUID: 1000482
 +
sstQuota: 42949672960
 +
sstSoftwareVersion: 12.0.1
 +
sstFileUploadSize: 5368709120
 +
host: kvm-1185
 +
sstProvisioningMode: add
 +
sstProvisioningExecutionDate: 0
 +
sstProvisioningState: 0
 +
sstBelongsToResellerUID: 4000000
 +
sstBelongsToCustomerUID: 4000001
 +
sstBelongsToPersonUID: 4000002
 
</source>
 
</source>
 
The following example shows the OpenLDAP directory entry for the storage storage account with the uid number 3731834:
 
dn: uid=3731834,ou=accounts,ou=storage,ou=services,dc=stoney-cloud,dc=org
 
objectclass: top
 
objectclass: account
 
objectclass: posixAccount
 
objectclass: shadowAccount
 
objectclass: sstBackup
 
objectclass: sstProvisioning
 
objectclass: sstRelationship
 
uid: 3730083
 
userPassword: {SSHA}E/KLUgeAtApAPQ7mG2GMddCxTE9m9QOS
 
uidNumber: 3731834
 
gidNumber: 3731834
 
cn: Michael Eichenberger
 
gecos: Michael Eichenberger
 
homeDirectory: /var/storage/7/707/723/3723707/chroot/./home/3723707
 
loginShell: /bin/sh
 
shadowLastChange: 11108
 
shadowMax: 99999
 
shadowWarning: 7
 
shadowFlag: 134539460
 
sstBackupIntervalHourly: 0
 
sstBackupIntervalDaily: 7
 
sstBackupIntervalWeekly: 4
 
sstBackupIntervalMonthly: 3
 
sstBackupIntervalYearly: 0
 
sstBackupWarningDays: 1
 
sstBackupWarningNumbers: 0
 
sstBackupWarningOn: TRUE
 
sstNotificationWarningLevel: 85
 
preferredLanguage: de-CH
 
sstNotificationWarningMedium: mail
 
sstUseSelfcare: FALSE
 
sstUseSSH: TRUE
 
sstIsActive: TRUE
 
sstQuota: 10737418240
 
sstBackupSize: 0
 
sstIncrementSize: 0
 
sstBackupLastSuccessfulBackup: computer:20130923T063554Z
 
sstProvisioningMode: add
 
sstProvisioningExecutionDate: 0
 
sstProvisioningState: 0
 
sstBelongsToResellerUID: 4000000
 
sstBelongsToCustomerUID: 4000001
 
sstBelongsToPersonUID: 4000002
 
  
 
The following table describes the different attributes:
 
The following table describes the different attributes:
Line 1,089: Line 1,170:
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Identifies the entry's password and encryption method in the following format: <code>{encryption method}encrypted password</code>. For example: {SSHA}zBiT1dHAZh/8zbCeyocRVWhdP0j9xJ3U. This password will be automatically set through the Self-Service interface. Afterwords, the password can be changed by the user (including the reseller and customer).  
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Identifies the entry's password and encryption method in the following format: <code>{encryption method}encrypted password</code>. For example: {SSHA}zBiT1dHAZh/8zbCeyocRVWhdP0j9xJ3U. This password will be automatically set through the Self-Service interface. Afterwords, the password can be changed by the user (including the reseller and customer). The initial password is stored in clear text and is encrypted by the provisioning daemon.
  
 
|-
 
|-
Line 1,097: Line 1,178:
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Related to the /etc/shadow file, this attribute specifies the user's login ID. Is the same as the '''uid'''. For example: '''3723707'''.
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Related to the /etc/shadow file, this attribute specifies the user's login ID. Is the same as the '''uid'''. For example: '''3730083'''.
  
 
|-
 
|-
Line 1,105: Line 1,186:
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Group ID number. Is the same as the '''uid'''. For example: '''3723707'''.
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Group ID number. Is the same as the '''uid'''. For example: '''3730083'''.
  
 
|-
 
|-
Line 1,113: Line 1,194:
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| givenName and Surname. Will be used for the presentation in the interface. TBD
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Consists of the '''uid''' and the domain '''stoney-storage.com'''. For example: '''3730083.stoney-storage.com'''.
  
 
|-
 
|-
Line 1,121: Line 1,202:
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"|  Named for historical reasons, the GECOS field is mandatory and is used to store extra information (such as the user's full name). Utilities such as finger or getent access this field to provide additional user information. For a personal account, this entry would consist of <code>givenName</code> and <code>surname</code>, for example <code>Michael Eichenberger</code>. These values are taken from the owners entry (ou=people). For a service account, the attribute <code>sstDisplayName</code> from the corresponding service would be used for the content of this attribute. Please be aware, that this attribute is a '''IA5String''' (OID=1.3.6.1.4.1.1466.115.121.1.26) IA5 (almost ASCII) character set (7-bit). Does NOT allow extended characters e.g. é, Ø, å etc. The Self-Service interface automatically creates the content of this attribute. The user (including the reseller and customer) can modify this attribute as desired (except for the IA5 restrictions).
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"|  Named for historical reasons, the GECOS field is mandatory and is used to store extra information (such as the user's full name). Utilities such as finger or getent access this field to provide additional user information. For a personal account, this entry would consist of <code>givenName</code> and <code>surname</code>, for example <code>Michael Eichenberger</code>. These values are taken from the owners entry (ou=people). For a service account, the attribute <code>sstDisplayName</code> from the corresponding service would be used for the content of this attribute. Please be aware, that this attribute is a '''IA5String''' (OID=1.3.6.1.4.1.1466.115.121.1.26) IA5 (almost ASCII) character set (7-bit). Does NOT allow extended characters e.g. é, Ø, å etc. The Self-Service interface automatically creates the content of this attribute. Consists of the '''uid''' and the domain '''stoney-storage.com'''. For example: '''3730083.stoney-storage.com'''.
 
You can use:<br />
 
You can use:<br />
 
<code>~ $ echo "Tüpfelhyänenöhrchen" | iconv -f 'utf-8' -t 'ASCII//TRANSLIT'</code><br />
 
<code>~ $ echo "Tüpfelhyänenöhrchen" | iconv -f 'utf-8' -t 'ASCII//TRANSLIT'</code><br />
Line 1,136: Line 1,217:
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The directory path corresponds with the 7 digit account uid. The following example describes, how the directory structure is built up for the account with the uid 3723707.
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The directory path corresponds with the 7 digit account uid. The following example describes, how the directory structure is built up for the account with the uid '''3730083'''.
<code>/var/storage/g/efg/bcd/abcdefg/chroot/./home/abcdefg</code><br/>
+
<code>/var/storage/g/efg/bcd/abcdefg</code><br/>
<code>/var/storage/7/707/723/3723707/chroot/./home/3723707</code>
+
<code>/var/storage/3/083/730/3730083</code>
 
This attribute is created by the Self-Service interface.
 
This attribute is created by the Self-Service interface.
  
Line 1,147: Line 1,228:
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The path to the login shell. The default is '''/bin/sh''' and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The path to the login shell. The default is '''/bin/false''' and can no be changed.
 +
 
 +
|-
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| shadowFlag
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Related to the /etc/shadow file, this attribute is currently not used and is reserved for future use. The default is set to '''134539460''' and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
  
 
|-
 
|-
Line 1,174: Line 1,263:
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| shadowFlag
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsActive
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Related to the /etc/shadow file, this attribute is currently not used and is reserved for future use. The default is set to '''134539460''' and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
+
 
+
|-
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstStorageIntervalHourly
+
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>1</sup></center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| How many hourly storages do we want? The default is '''0''' and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstStorageIntervalDaily
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>1</sup></center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| How many daily storages do we want? The default is '''7''' and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Is the storage account active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). Default is <code>TRUE</code> (yes) and is taken from the "ou=defaults,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstStorageIntervalWeekly
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationWarningOn
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>1</sup></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| How many weekly storages do we want? The default is '''4''' and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
+
 
+
|-
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstStorageIntervalMonthly
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>1</sup></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| How many monthly storages do we want? The default is '''3''' and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
+
 
+
|-
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstStorageIntervalYearly
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>1</sup></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| How many yearly storages do we want? The default is '''0''' and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
+
 
+
|-
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstStorageWarningDays
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>1</sup></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| If the attribute <code>sstStorageWarningOn</code> ist true, a non-successful storage notification warning is sent after X days of non-successful storages (where X is an integer number larger than zero). X is an integer number larger than 1. 0 means, the warning is turned off. The default is '''1''' and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
+
+
|-
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstStorageWarningNumbers
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>1</sup></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| If the attribute <code>sstStorageWarningOn</code> ist true, a non-successful storage notification warning is sent after X non-successful storages. X is an integer number larger than 1. 0 means, the warning is turned off. The default is '''0''' and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
+
 
+
|-
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstStorageWarningOn
+
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Is the non-successful storage notification warning turned on or not? Either <code>true</code> (yes) or <code>false</code> (no). Default is true (yes) and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Are the users notification warnings turned on or not? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). Default is TRUE (yes) and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
  
 
|-
 
|-
Line 1,251: Line 1,284:
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| This multi-valued attribute will be used to turn single notifications on or off. The attribute sstStorageWarningOn must be set to <code>TRUE</code> Possible values are quota, schedule and unsuccessful (the names correspond with the template dn).
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| This multi-valued attribute will be used to turn single notifications on or off. The attribute <code>sstWikiWarningOn</code> must be set to <code>TRUE</code>.  
  
|-
+
Currently, the stoney storage service only supports <code>quota</code> (the names correspond with the template dn).
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| preferredLanguage
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>2</sup></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The notification language according to [http://www.ietf.org/rfc/rfc1766.txt RFC 1766] ([http://www.iso.org/iso/english_country_names_and_code_elements ISO 3166-1-alpha-2 code]-[http://www.loc.gov/standards/iso639-2/php/code_list.php ISO 639-1 Code]. For example '''de-CH''' or '''en-GB'''. The content of this value is taken from the person entry from the attribute <code>preferredLanguage</code>. If the storage account belongs to a service, the user must be asked for the notification language.
+
 
+
|-
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationWarningLevel
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>2</sup></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"|  The quota notification level in percent, when the owner of the storage needs to warned. A value between 0 and 100. The default is 85 percent and is taken from the "ou=defaults,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
+
  
 
|-
 
|-
Line 1,278: Line 1,297:
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstQuota
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstSoftwareVersion
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The filesystem quota in bytes. 10737418240 Bytes equal 10 Gigabytes. The user can change the quota, if the <code>sstQuotaChange</code> is set to <code>TRUE</code>. See "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstStorageSize
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The size of the actual storage in bytes. Default is '''0''' and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry. This attribute will be updated by the <code>writeAccountSize.pl</code> script, which is called during the daily storage run by the <code>rsnapshotPostExecWrapper.sh</code> script.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIncrementSize
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The size of all the incremental storages combined in bytes. This attribute will be updated by the <code>writeAccountSize.pl</code> script, which is called during the daily storage run by the <code>rsnapshotPostExecWrapper.sh</code> script.
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| TBD
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| mobileTelephoneNumber
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstFileUploadSize
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Multi-valued attribute with the mobile phone number(s) that is used for the notification of the user(s), if the attribute <code>sstStorageWarningOn</code> ist true and the attribute <code>sstNotificationWarningMedium</code> ist set to <code>sms</code>. Currently, only adding new <code>mail</code> addresses are supported, therefore this attribute is not used for the moment.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| mail
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>2</sup></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>2</sup></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Multi-valued attribute with the E-Mail addresse(s) that is used for the notification of the user(s), if the attribute <code>sstStorageWarningOn</code> ist <code>TRUE</code> and the attribute <code>sstNotificationWarningMedium</code> ist set to <code>mail</code>. If <code>sstNotificationWarningMediumAdd</code> is set to <code>TRUE</code> and the storage service belongs to a personal account, the <code>mail</code> entry would be taken from the owners entry (ou=people). For a storage service belonging to another serviĉe, the Self-Service would ask the user for the <code>mail</code> address.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsActive
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Is the storage account active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). Default is <code>TRUE</code> (yes) and is taken from the "ou=defaults,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstUseSelfcare
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Can the Self-Service interface be used with the credentials of the storage account? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). Default is <code>FALSE</code> (no) and is taken from the "ou=defaults,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| TBD
  
 
|-
 
|-
Line 1,339: Line 1,318:
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Is the ssh service active for the storage account? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). Default is <code>TRUE</code> (yes) and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| TBD
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstStorageLastSuccessfulStorage
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| host
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 +
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| TBD
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The date and time of the last successful storage in UTC, either 0 or in the form of hostname:[YYYY][MM][DD]T[hh][mm][ss]Z (ISO 8601). For example: computer:20130923T063554Z or computer.example.com:20130923T063554Z.
+
  
 
|-
 
|-
Line 1,371: Line 1,350:
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The provisioning return value written by the [[prov-storage-nextcloud]] daemon. '''0''' means success, '''>0''' means failure. See the prov-storage-nextcloud [[prov-storage-nextcloud#Exit_Codes | Exit Codes]] for detailed information.
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The provisioning return value written by the [[stoney_storage:_prov-storage-nextcloud | prov-storage-nextcloud]] daemon. '''0''' means success, '''>0''' means failure. See the prov-storage-nextcloud [[stoney_storage:_prov-storage-nextcloud#Exit_Codes | Exit Codes]] for detailed information.
  
 
|-
 
|-
Line 1,404: Line 1,383:
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the person UID the leaf belongs to.
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the person UID the leaf belongs to.
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToServiceUID
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>3</sup></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the service UID the leaf belongs to.
 
  
 
|}
 
|}
Line 1,421: Line 1,392:
 
* '''x<sup>3</sup>''': Either <code>sstBelongsToPersonUID</code> or <code>sstBelongsToServiceUID</code> must bei set.
 
* '''x<sup>3</sup>''': Either <code>sstBelongsToPersonUID</code> or <code>sstBelongsToServiceUID</code> must bei set.
  
== Storage Groups ==
+
== Storage - Groups ==
 
The sub tree for the groups of the storage storage service:
 
The sub tree for the groups of the storage storage service:
dn: ou=groups,ou=storage,ou=services,dc=stoney-cloud,dc=org
+
<source lang="ldif">
objectclass: top
+
dn: ou=groups,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: organizationalUnit
+
objectclass: top
ou: groups
+
objectclass: organizationalUnit
description: The sub tree for the groups of the storage storage service.
+
ou: groups
 +
description: The sub tree for the groups of the storage storage service.
 +
</source>
  
=== Storage Group Example ===
+
=== Storage - Group example ===
dn: cn=3723707,ou=groups,ou=storage,ou=services,dc=stoney-cloud,dc=org
+
<source lang="ldif">
objectclass: top
+
dn: cn=3730083,ou=groups,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: posixGroup
+
objectclass: top
objectclass: sstRelationship
+
objectclass: posixGroup
cn: 3723707
+
objectclass: sstRelationship
gidNumber: 3723707
+
cn: 3730083
sstIsActive: TRUE
+
gidNumber: 3730083
sstBelongsToResellerUID: 4000000
+
sstIsActive: TRUE
sstBelongsToCustomerUID: 4000001
+
sstBelongsToResellerUID: 4000000
sstBelongsToPersonUID: 4000002
+
sstBelongsToCustomerUID: 4000001
 +
sstBelongsToPersonUID: 4000002
 +
</source>
 +
 
 +
== Storage - SSL-certificates ==
 +
The leaf entries for SSL-certificates of the stoney storage service are located directly below the stoney wiki account entry.
 +
 
 +
=== Storage - SSL-certificate example ===
 +
<source lang="ldif">
 +
dn: uid=3732364,uid=3730083,ou=accounts,ou=storage,ou=services,dc=stoney-cloud,dc=org
 +
objectclass: top
 +
objectclass: sstStorageCertificate
 +
objectclass: sstProvisioning
 +
objectclass: sstRelationship
 +
uid: 3732364
 +
sstWebsiteURL: box.stepping-stone.ch
 +
host: kvm-1185
 +
sstIsActive: TRUE
 +
sstProvisioningMode: add
 +
sstProvisioningExecutionDate: 0
 +
sstProvisioningState: 0
 +
sstBelongsToResellerUID: 4000000
 +
sstBelongsToCustomerUID: 4000001
 +
sstBelongsToPersonUID: 4000002
 +
</source>
  
 
== Storage Provisioning ==
 
== Storage Provisioning ==

Latest revision as of 16:13, 17 January 2021

Abstract

This document describes the OpenLDAP directory data organisation for the stoney storage service.

Data Organisation

The following chapters explain the data organisation of the stoney cloud OpenLDAP directory. In this case we are looking at the stoney storage service.

Storage

The following LDIF shows the storage LDAP entry for the stoney storage service:

dn: ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: organizationalUnit
objectclass: top
ou: storage
description: The sub tree for the Nextcloud based stoney storage service.

Storage - Configuration

The sub tree for the configuration of the storage storage service:

dn: ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: configuration
description: The sub tree for the configuration of the Nextcloud based stoney storage service.

Storage - Configuration - Provisioning daemon

See the Services description for the naming convention.

The sub tree for the configuration of the prov-storage-nextcloud daemon:

dn: ou=prov-storage-nextcloud,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstServiceConfigurationObjectClass
ou: prov-storage-nextcloud
description: The sub tree for the configuration of the prov-storage-nextcloud daemon.
sstIsActive: TRUE

The following table describes the different attributes:

Attribute Objectclass
Existence
Mandatory
Description
ou organizationalUnit
MUST
x
The name of the leaf.
description sstServiceConfigurationObjectClass
MAY
x
The description of the leaf.
sstIsActive sstServiceConfigurationObjectClass
MAY
x
Is the entry active? Either TRUE (yes) or FALSE (no).

The default value is TRUE.

Legend:

  • x: Mandatory in all cases.

Storage - Configuration - Reseller

The sub tree for the reseller specific storage storage service settings:

dn: ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: reseller
description: The sub tree for the reseller specific configuration of the Nextcloud based stoney storage service.

The sub tree for the specific storage storage service settings for the reseller Reseller Ltd. with the uid 4000000.

dn: uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstReseller
objectclass: sstServiceConfigurationObjectClass
uid: 4000000
o: Reseller Ltd.
description: The sub tree for the specific storage storage service settings for the reseller Reseller Ltd. with the uid 4000000.
sstIsActive: TRUE
sstIsCompany: TRUE
sstIsDefault: TRUE
sstBelongsToResellerUID: 4000000

The following table describes the different attributes:

Attribute Objectclass
Existence
Mandatory
Self-Service
Changeable
Description
uid sstReseller
MUST
x
A unique integer value with 7 digits or more.

For example: uid: 4000000 corresponds with sstBelongsToResellerUID: 4000000.

organizationName sstReseller
MAY
x1
The company name.

For example: stepping stone AG.

givenName sstReseller
MAY
x1
Name.

For example: Hans.

surname sstReseller
MAY
x1
Surname.

For example: Muster.

description sstReseller
MAY
x
The description of the leaf.

For example: The sub tree for the specific stoney storage service settings for the reseller Reseller Ltd. with the uid 4000000.

sstIsActive sstReseller
MUST
x
Is the entry active? Either TRUE (yes) or FALSE (no).

The default value is TRUE.

sstIsCompany sstReseller
MUST
x
Do we have an organisation or a private person? Either TRUE (yes) or FALSE (no).

The default value is TRUE.

sstIsDefault sstServiceConfigurationObjectClass
MAY
x
Is this leaf a default entry? Either TRUE (yes) or FALSE (no). If sstIsDefault is set to TRUE, this entry acts as a fall back configuration. In other words: If a reseller doesn't have his own stoney storage service configuration, then this one will be used.

As you would normally have only one default configuration per cloud, the default value is FALSE.

sstBelongsToResellerUID sstReseller
MUST
x
Stores the reseller UID the leaf belongs to. A unique value with 7 digits or more.

For example: sstBelongsToResellerUID: 4000000 corresponds with uid: 4000000.

Legend:

  • x: Mandatory in all cases.
  • x1: If sstIsCompany is set to TRUE, the organizationName must be set. Otherwise givenName and surname must be set.

Storage - Configuration - Reseller - Account defaults

Work in progress ...

The sub tree for the storage account defaults for the storage storage service for the reseller Reseller Ltd. with the uid 4000000:

dn: ou=defaults,uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstStorage
ou: defaults
description: The sub tree for the default settings of the storage storage service for the reseller Reseller Ltd. with the uid 4000000.
loginShell: /bin/sh
shadowMax: 99999
shadowWarning: 7
shadowFlag: 134539460
sstStorageWarningDays: 1
sstStorageWarningNumbers: 0
sstStorageWarningOn: FALSE
sstNotificationWarningLevel: 85
sstNotificationWarningMedium: mail
sstStorageSize: 0
sstIncrementSize: 0
sstStorageIntervalHourly: 0
sstStorageIntervalDaily: 7
sstStorageIntervalWeekly: 4
sstStorageIntervalMonthly: 3
sstStorageIntervalYearly: 0
sstUseSelfcare: FALSE
sstUseSSH: TRUE
sstIsActive: TRUE

The following table describes the different attributes:

Attribute
Existence
Mandatory
Self-Service
Changeable
Description
ou
MUST
x
description
MAY
x
loginShell
MAY
x
The path to the login shell. The default is /bin/sh.
shadowMax
MAY
x
Related to the /etc/shadow file, this attribute specifies the maximum number of days the password is valid. The default is 99999, which corresponds to about 273 years. In reality, this means, that the user does not need to change the password.
shadowWarning
MAY
x
Related to the /etc/shadow file, this attribute specifies the number of days before the password expires that the user is warned. The default is 7.
shadowFlag
MAY
x
Related to the /etc/shadow file, this attribute is currently not used and is reserved for future use. The default is set to 134539460.


sstVolumeCapacityDefault
MAY
x
sstVolumeCapacityMin
MAY
x
sstVolumeCapacityMax
MAY
x
sstVolumeCapacityStep
MAY
x
sstQuotaChange
MAY
x
Can the user change the quota? Either TRUE (yes) or FALSE (no). Default is FALSE (no).
sstStorageWarningDays
MUST
x
After how many missed storage days should the user be warned. Possible values are between 0 and 99. Default is 1.
sstStorageWarningNumbers
MUST
x
After how many missed storages should the user be warned. Possible values are between 0 and 99. Default is 0.
sstStorageWarningOn
MUST
x
Does the user want to informed about failed storages (TRUE) or not (FALSE).
sstNotificationWarningLevel
MAY
x
The quota notification level in percent, when the owner of the storage needs to warned. A value between 0 and 100. The default is 85 percent.
sstNotificationWarningMedium
MUST
x
The notification medium, either sms (points to the multi-valued attribute mobileTelephoneNumber) or mail (points to the multi-valued attribute mail). Currently, only mail is supported.
sstNotificationWarningMediumChange
MAY
x
Can a user change the notification warning medium? Either TRUE (yes) or FALSE (no). The default is FALSE (no).
sstNotificationWarningMediumAdd
MAY
x
Can a user add new notification warning mediums (mobileTelephoneNumber or mail? Either TRUE (yes) or FALSE (no). The default is TRUE (yes). Currently, only adding new mail addresses are supported.
sstStorageIntervalHourly
MUST
x
How many hourly storages do we want? The default is 0.
sstStorageIntervalDaily
MUST
x
How many daily storages do we want? The default is 7.
sstStorageIntervalWeekly
MUST
x
How many weekly storages do we want? The default is 4.
sstStorageIntervalMonthly
MUST
x
How many monthly storages do we want? The default is 3.
sstStorageIntervalYearly
MUST
x
How many yearly storages do we want? The default is 0.
sstIsActive
MUST
x
Is the storage account active? Either TRUE (yes) or FALSE (no). Default is TRUE (yes).
sstUseSelfcare
MUST
x
Can the Self-Service interface be used with the credentials of the storage account? Either TRUE (yes) or FALSE (no). Default is FALSE (no).
sstUseSSH
MUST
x
Is the ssh service active for the storage account? Either TRUE (yes) or FALSE (no). Default is TRUE (yes).

Legend:

  • x: Mandatory in all cases.

Storage - Configuration - Reseller - Notification settings

The sub tree stores the notification information for the storage storage service for the reseller Reseller Ltd. with the uid 4000000. This information is used independently of the notification settings of the users. The idea is, that the reseller can receive notifications for a customer and react on the received information (for example, when the quota has been reached):

dn: ou=notifications,uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstNotificationObjectClass
ou: notifications
description: The sub tree stores the notification information for the storage storage service for the reseller Reseller Ltd. with the uid 4000000. This information is used independently of the notification settings of the users.
sstMailTo: Support stepping stone GmbH <support@stepping-stone.ch>
sstNotificationWarning: quota
sstNotificationWarning: schedule
sstNotificationWarning: unsuccessful

The following table describes the different attributes:

Attribute
Existence
Mandatory
Self-Service
Changeable
Description
ou
MUST
x
description
MAY
x
sstMailTo
MAY
x
sstNotificationWarning
MAY
This multi-valued attribute will be used to turn single notifications on or off. The attribute sstStorageWarningOn must be set to TRUE Possible values are quota, schedule and unsuccessful (the names correspond with the template dn).

Legend:

  • x: Mandatory in all cases.

Storage - Configuration - Reseller - Account Settings

The sub tree stores the information about what can be modified in which scope for the storage storage service for the reseller Reseller Ltd. with the uid 4000000:

dn: ou=settings,uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstServiceSettingsObjectClass
ou: settings
description: This sub tree stores the information about what can be modified in which scope.
sstVolumeCapacityDefault: 1073741824
sstVolumeCapacityMin: 1073741824
sstVolumeCapacityMax: 536870912000
sstVolumeCapacityStep: 1073741824
sstNotificationWarningMediumChange: FALSE
sstNotificationWarningMediumAdd: TRUE
sstQuotaChange: FALSE
sstSendCredentialsTo: owner
sstMailFrom: Support stepping stone GmbH <support@stepping-stone.ch>
preferredLanguage: de-CH

Human readable format:

  • sstVolumeCapacityDefault: 1 Gibibyte (GiB)
  • sstVolumeCapacityMin: 1 Gibibyte (GiB)
  • sstVolumeCapacityMax: 500 Gibibyte (GiB)
  • sstVolumeCapacityStep: 1 Gibibyte (GiB)

The following table describes how to calculate the sstVolumeCapacity* attributes:

Size Calculation Value
1 Byte
1 1
1 Kibibyte (KiB)
210 1 024
1 Mebibyte (MiB)
220 1 048 576
1 Gibibyte (GiB)
230 1 073 741 824
5 Gibibyte (GiB)
5 x 230 5 368 709 120
10 Gibibyte (GiB)
10 x 230 10 737 418 240
100 Gibibyte (GiB)
100 x 230 107 374 182 400
500 Gibibyte (GiB)
500 x 230 536 870 912 000
1 Tebibyte (TiB)
240 1 099 511 627 776
1 Pebibyte (PiB)
250 1 125 899 906 842 624
1 Exbibyte (EiB)
260 1 152 921 504 606 846 976

The following table describes the different attributes:

Attribute
Existence
Mandatory
Self-Service
Changeable
Description
ou
MUST
x
description
MAY
x
sstVolumeCapacityDefault
MAY
x
sstVolumeCapacityMin
MAY
x
sstVolumeCapacityMax
MAY
x
sstVolumeCapacityStep
MAY
x
  • Arrow left / Arrow right: 1 Gigabyte (sstVolumeCapacityStep)
  • Page up / Page down: 10 Gigabyte (10 x sstVolumeCapacityStep)
sstNotificationWarningMediumChange
MAY
x
Can a user change the notification warning medium? Either TRUE (yes) or FALSE (no). The default is FALSE (no).
sstNotificationWarningMediumAdd
MAY
x
Can a user add new notification warning mediums (mobileTelephoneNumber or mail? Either TRUE (yes) or FALSE (no). The default is TRUE (yes). Currently, only adding new mail addresses are supported.
sstQuotaChange
MAY
x
Can the user change the quota? Either TRUE (yes) or FALSE (no). Default is FALSE (no).
sstSendCredentialsTo
MAY
x
To whom do we send the access data or credentials. At least one entry must exist. Possible values:
  • sstSendCredentialsTo: login: The access data or credentials are sent to the person logged in.
  • sstSendCredentialsTo: owner: The access data or credentials are sent to the owner (person), the service belongs to.
sstMailFrom
MAY
x
The mail address, from which the credentials are to be sent from. In the example from above, this value is Support stepping stone GmbH <support@stepping-stone.ch>.
preferredLanguage
MAY
x
The notification language, which will be used to used in the mails, that are sent to the reseller, according to RFC 1766 (ISO 3166-1-alpha-2 code-ISO 639-1 Code. For example de-CH or en-GB.


Legend:

  • x: Mandatory in all cases.

Storage - Configuration - Reseller - Templates

This sub tree contains the templates for the storage storage service for the reseller Reseller Ltd. with the uid 4000000:

dn: ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: templates
description: This sub tree contains the templates for the storage storage service for the reseller Reseller Ltd. with the uid 4000000.
Storage - Configuration - Reseller - Credentials templates

This sub tree contains the credentials templates for the storage storage service:

dn: ou=credentials,ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstTemplateSetup
ou: credentials
description: This leaf contains the credential templates for the storage storage service.
sstMailFrom: Support stepping stone GmbH <support@stepping-stone.ch>
sstMailTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/credentials/credentials_mail
sstMailTemplateFormatSource: txt
sstMailTemplateFormatTarget: txt
sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/credentials/credentials_attachment
sstTemplateFormatSource: odt
sstTemplateFormatTarget: pdf

The following table describes the different attributes:

Attribute
Existence
Mandatory
Self-Service
Changeable
Description
ou
MUST
x
description
MUST
x
sstMailFrom
MAY
x
The mail address, from which the credentials are sent from. For example:
  • Support stepping stone GmbH <support@stepping-stone.ch>).

If this attribute does not exist, the

  • sstMailFrom

from

  • ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org

must be taken.

sstMailTo
MAY
If this multi-valued attribute is set with one or mail address(es), then these recipients will receive the same information as the login user or the owner, depending on the value of sstSendCredentialsTo under ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org. Normally, this attribute is not set for the credentials.
sstMailTemplate
MAY
x
The template, that is used to create the mail that is sent to either the user logged in (sstSendCredentialsTo: login) or to the owner of then newly created service (sstSendCredentialsTo: owner. For example:
  • sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/credentials/credentials_mail.
sstMailTemplateFormatSource
MAY
x
The format of the source template. Supported values:
  • txt
  • html

Place holder:

  • For both txt or html as a source and txt or html, the place holders have the form of {$placeholder}.

Default would normally be txt.

sstMailTemplateFormatTarget
MAY
x
The format of the target. Supported values:
  • txt
  • html
sstTemplate
MAY
x
The template, that is used to create the attachment that is sent with the mail. For example:
  • sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/credentials/credentials_attachment.
sstTemplateFormatSource
MAY
x
The format of the source template. Supported values:
  • txt
  • odt

Place holders:

  • If we have txt or html as a source and txt or html, the place holders have the form of {$placeholder}.
  • If we have odt as a source and odt or pdf as a target, then PHP-Easy-Report is used to replace the placeholders. These have the form of {{placeholder}}.

The complete path and file name is a string concatenation of the values of the attributes sstTemplate, preferredLanguage and sstTemplateFormatSource (with a dot in between the values). For example:

  • sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/credentials/credentials_attachment
  • preferredLanguage: en-GB
  • sstTemplateFormatSource: odt

This gives us:

  • file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/credentials/credentials_attachment.en-GB.ode

Default would normally be odt.

sstTemplateFormatTarget
MAY
x
The format of the target. Supported values:
  • txt
  • odt
  • pdf

Note to Self-Service developer(s). Please be aware of the following issues when using PHP-Easy-Report:

  • Minor: Spaces (and other special characters) in the document file names are going to be a problem since the names don't get escaped.
  • Major: You must provide a manually-created unique temp-directory for the PHP-Easy-Report object, otherwise there will be race-conditions.

Default would normally be pdf.

Legend:

  • x: Mandatory in all cases.
Storage - Configuration - Reseller - Credentials templates email place holders (txt/html)

Address with an example:

{$company}                         stepping stone AG
{$salutation} {$name} {$surname}   Mr. Michael Eichenberger
{$address}                         Wasserwerkgasse79
{$country}-{$zip} {$location}      CH-3012 Bern

Date with an example:

{$day}                             11
{$month}                           August
{$year}                            2019


Storage Service with an example:

{$uid}                             4000124
{$password}                        XlWz4Qa#


Optional Values:

{$externalID}                      12345
Storage - Configuration - Reseller - Credentials templates LibreOffice place holders (odt)

LibreOffice (odt) templates have the same place holders as the E-Mail (text/html) templates. The only thing that changes, are the definitions. Instead of {$placeholder} we have {{placeholder}}.

Storage - Configuration - Reseller - Quota templates

Warns the user when the storage is running out of space (quota).

This sub tree contains the quota templates for the storage storage service:

dn: ou=quota,ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstTemplateSetup
ou: quota
description: This leaf contains the quota templates for the storage storage service.
sstMailFrom: Support stepping stone GmbH <support@stepping-stone.ch>
sstMailTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/quota/quota_mail
sstMailTemplateFormatSource: txt
sstMailTemplateFormatTarget: txt
sstMailTemplateReseller: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/quota/quota_mail_reseller
sstMailTemplateFormatSource: txt
sstMailTemplateFormatTarget: txt

The following table describes the different attributes:

Attribute
Existence
Mandatory
Self-Service
Changeable
Description
ou
MUST
x
description
MUST
x
sstMailFrom
MAY
x
The mail address, from which the quota mails are sent from. For example:
  • Support stepping stone GmbH <support@stepping-stone.ch>.

If this attribute does not exist, the

  • sstMailFrom

from

  • ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org

must be taken.

sstMailTo
MAY
If this multi-valued attribute is set with one or mail address(es), then these recipients will receive the same information as the owner. Normally, this attribute is not set.
sstMailTemplate
MAY
x
The template, that is used to create the mail that is sent to the owner of the service if sstStorageWarningOn: TRUE and sstNotificationWarningMedium: mail. If the mail is not set, you must look for the mail in the owners person entry under uid=<UID>,ou=people,dc=stoney-cloud,dc=org.

For example:

  • sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/credentials/credentials_mail.
sstMailTemplateFormatSource
MAY
x
The format of the source template. Supported values:
  • txt
  • html

Place holder:

  • For both txt or html as a source and txt or html, the place holders have the form of {$placeholder}.

Default would normally be txt.

sstMailTemplateFormatTarget
MAY
x
The format of the target. Supported values:
  • txt
  • html
sstMailTemplateReseller
MAY
x1
The path and name to a template file, that is used to inform one or more people if the multi-valued attribute sstMailTo is set in the notifications sub tree of the reseller
  • ou=notifications,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org

and if <code>sstNotificationWarning is set to quota. In most cased, the attribute sstMailTo is set to the support organisations mail address. For example:

  • sstMailTo: Support stepping stone GmbH <support@stepping-stone.ch&gt>

This way, the support organisation will be pre-informed for when the customer should call or write.

The information the recipients will receive, is the same as the owner, but will formatted according to:

  • sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/quota/quota_mail_reseller
  • sstMailTemplateResellerFormatSource: txt
  • sstMailTemplateResellerFormatTarget: txt
sstMailTemplateResellerFormatSource
MAY
x1
The format of the source template. Supported values:
  • txt
  • html

Place holder:

  • For both txt or html as a source and txt or html, the place holders have the form of {$placeholder}.

The complete path and file name is a string concatenation of the values of the attributes sstTemplate, preferredLanguage and sstTemplateFormatSource (with a dot in between the values). For example:

  • sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/quota/quota_mail_reseller
  • preferredLanguage: en-GB
  • sstTemplateFormatSource: txt

This gives us:

  • file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/quota/quota_mail_reseller.en-GB.txt

Default would normallb be txt.

sstMailTemplateResellerFormatTarget
MAY
x1
The format of the target. Supported values:
  • txt
  • html

Default would normallb be txt.

Legend:

  • x: Mandatory in all cases.
  • x1: Must exist, if sstMailTo is set.
Storage - Configuration - Reseller - Quota templates email place holders (txt/html)

An example:

{$salutation}       Mr.
{$surname}          Eichenberger
{$uid}              3723707
{$percent}          98
{$quota}            100
{$storage_size}     40
{$snapshot_size}    48

Optional Values:

{$externalID}       12345
Storage - Configuration - Reseller - Quota templates LibreOffice place holders (odt)

LibreOffice (odt) templates have the same place holders as the E-Mail (text/html) templates. The only thing that changes, are the definitions. Instead of {$placeholder} we have {{placeholder}}.

Storage - Accounts

The sub tree for the accounts of the stoney storage service:

dn: ou=accounts,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: accounts
description: The sub tree for the accounts of the stoney storage service.

Storage - Account example

The following example shows the OpenLDAP directory entry for the storage storage account with the uid number 3730083:

dn: uid=3730083,ou=accounts,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: account
objectclass: posixAccount
objectclass: shadowAccount
objectclass: sstStorage
objectclass: sstProvisioning
objectclass: sstRelationship
uid: 3730083
userPassword: {SSHA}E/KLUgeAtApAPQ7mG2GMddCxTE9m9QOS
uidNumber: 3730083
gidNumber: 3730083
cn: 3730083.stoney-storage.com
gecos: 3730083.stoney-storage.com
homeDirectory: /var/storage/3/083/730/3730083
loginShell: /bin/false
shadowFlag: 134539460
shadowLastChange: 11108
shadowMax: 99999
shadowWarning: 7
sstIsActive: TRUE
sstNotificationWarningOn: TRUE
sstNotificationWarning: quota
sstNotificationWarningMedium: mail
sstInformPersonUID: 1000482
sstQuota: 42949672960
sstSoftwareVersion: 12.0.1
sstFileUploadSize: 5368709120
host: kvm-1185
sstProvisioningMode: add
sstProvisioningExecutionDate: 0
sstProvisioningState: 0
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstBelongsToPersonUID: 4000002

The following table describes the different attributes:

Attribute
Existence
Mandatory
Self-Service
Changeable
Description
uid
MUST
x
x
The unique identifier (uid). This attribute is created by the Self-Service interface by reading (and incrementing) the next free uid from "cn=nextfreeuid,ou=administration,dc=stoney-cloud,dc=org".
userPassword
MAY
x
x
x
Identifies the entry's password and encryption method in the following format: {encryption method}encrypted password. For example: {SSHA}zBiT1dHAZh/8zbCeyocRVWhdP0j9xJ3U. This password will be automatically set through the Self-Service interface. Afterwords, the password can be changed by the user (including the reseller and customer). The initial password is stored in clear text and is encrypted by the provisioning daemon.
uidNumber
MUST
x
Related to the /etc/shadow file, this attribute specifies the user's login ID. Is the same as the uid. For example: 3730083.
gidNumber
MUST
x
Group ID number. Is the same as the uid. For example: 3730083.
cn
MUST
x
Consists of the uid and the domain stoney-storage.com. For example: 3730083.stoney-storage.com.
gecos
MAY
x
x
x
Named for historical reasons, the GECOS field is mandatory and is used to store extra information (such as the user's full name). Utilities such as finger or getent access this field to provide additional user information. For a personal account, this entry would consist of givenName and surname, for example Michael Eichenberger. These values are taken from the owners entry (ou=people). For a service account, the attribute sstDisplayName from the corresponding service would be used for the content of this attribute. Please be aware, that this attribute is a IA5String (OID=1.3.6.1.4.1.1466.115.121.1.26) IA5 (almost ASCII) character set (7-bit). Does NOT allow extended characters e.g. é, Ø, å etc. The Self-Service interface automatically creates the content of this attribute. Consists of the uid and the domain stoney-storage.com. For example: 3730083.stoney-storage.com.

You can use:
~ $ echo "Tüpfelhyänenöhrchen" | iconv -f 'utf-8' -t 'ASCII//TRANSLIT'
which gives you:
Tuepfelhyaenenoehrchen
or:
iconv("UTF-8", "ASCII//TRANSLIT", "Tüpfelhyänenöhrchen")
Please be aware, that some characters don't get converted properly ... For example: Ø and £. The characters $ and € work.

homeDirectory
MUST
x
The directory path corresponds with the 7 digit account uid. The following example describes, how the directory structure is built up for the account with the uid 3730083.

/var/storage/g/efg/bcd/abcdefg
/var/storage/3/083/730/3730083 This attribute is created by the Self-Service interface.

loginShell
MAY
x
The path to the login shell. The default is /bin/false and can no be changed.
shadowFlag
MAY
x
Related to the /etc/shadow file, this attribute is currently not used and is reserved for future use. The default is set to 134539460 and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
shadowLastChange
MAY
x
Related to the /etc/shadow file, this attribute specifies number of days between January 1, 1970, and the date that the password was last modified. Must be set to the day, that the password was set (must be updated, when the password is changed). This attribute is created by the Self-Service interface.
shadowMax
MAY
x
Related to the /etc/shadow file, this attribute specifies the maximum number of days the password is valid. The default is 99999, which corresponds to about 273 years. In reality, this means, that the user does not need to change the password. This attribute is created by the Self-Service interface. The value is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
shadowWarning
MAY
x
Related to the /etc/shadow file, this attribute specifies the number of days before the password expires that the user is warned. The default is 7 and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
sstIsActive
MUST
x
Is the storage account active? Either TRUE (yes) or FALSE (no). Default is TRUE (yes) and is taken from the "ou=defaults,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
sstNotificationWarningOn
MUST
x
Are the users notification warnings turned on or not? Either TRUE (yes) or FALSE (no). Default is TRUE (yes) and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
sstNotificationWarning
MAY
This multi-valued attribute will be used to turn single notifications on or off. The attribute sstWikiWarningOn must be set to TRUE.

Currently, the stoney storage service only supports quota (the names correspond with the template dn).

sstNotificationWarningMedium
MUST
x
The notification medium, either sms (points to the multi-valued attribute mobileTelephoneNumber) or mail (points to the multi-valued attribute mail). Currently, only mail is supported. This is the default is taken from the "ou=defaults,uid=<UID>,ou=reseller,ou=configuration,ou=storage,ou=services,dc=stoney-cloud,dc=org" entry.
sstSoftwareVersion
MAY
x
TBD
sstFileUploadSize
MAY
x
TBD
sstUseSSH
MUST
x
TBD
host
MAY
x
TBD
sstProvisioningMode
MUST
x
The provisioning mode, either add, modify or delete. For a new account, this attribute must be set to add. See Provisioning for details.
sstProvisioningExecutionDate
MUST
x
The date the provisioning shall occur in the form of [YYYY][MM][DD] (ISO 8601). For a new account, this attribute must be set to 0. See Provisioning for details.
sstProvisioningReturnValue
MAY
The provisioning return value written by the prov-storage-nextcloud daemon. 0 means success, >0 means failure. See the prov-storage-nextcloud Exit Codes for detailed information.
sstProvisioningState
MUST
x
The provisioning state, either 0 or in the form of [YYYY][MM][DD]T[hh][mm][ss] (ISO 8601). For a new account, this attribute must be set to 0. See Provisioning for details.
sstBelongsToResellerUID
MUST
x
Stores the reseller UID the leaf belongs to.
sstBelongsToCustomerUID
MUST
x
Stores the customer UID the leaf belongs to.
sstBelongsToPersonUID
MAY
x3
Stores the person UID the leaf belongs to.

Legend:

  • x: Mandatory in all cases.
  • x1: Only show, if the number is larger than zero.
  • x2: Only show, if sstStorageWarningOn is set to TRUE.
  • x3: Either sstBelongsToPersonUID or sstBelongsToServiceUID must bei set.

Storage - Groups

The sub tree for the groups of the storage storage service:

dn: ou=groups,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: groups
description: The sub tree for the groups of the storage storage service.

Storage - Group example

dn: cn=3730083,ou=groups,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: posixGroup
objectclass: sstRelationship
cn: 3730083
gidNumber: 3730083
sstIsActive: TRUE
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstBelongsToPersonUID: 4000002

Storage - SSL-certificates

The leaf entries for SSL-certificates of the stoney storage service are located directly below the stoney wiki account entry.

Storage - SSL-certificate example

dn: uid=3732364,uid=3730083,ou=accounts,ou=storage,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstStorageCertificate
objectclass: sstProvisioning
objectclass: sstRelationship
uid: 3732364
sstWebsiteURL: box.stepping-stone.ch
host: kvm-1185
sstIsActive: TRUE
sstProvisioningMode: add
sstProvisioningExecutionDate: 0
sstProvisioningState: 0
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstBelongsToPersonUID: 4000002

Storage Provisioning

See the OpenLDAP provisioning page for the overview of the provisioning functionality and stoney storage: prov-storage-nextcloud the actual storage provisioning.

Links