pmcf 4.8.1 → 4.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -42,69 +42,84 @@ generates config packages for:
42
42
 
43
43
  * [Base](#base)
44
44
  * [Parameters](#parameters)
45
- * [propertyIterator](#propertyiterator)
45
+ * [extendedAttribute](#extendedattribute)
46
46
  * [Parameters](#parameters-1)
47
- * [getProperties](#getproperties)
47
+ * [propertyIterator](#propertyiterator)
48
48
  * [Parameters](#parameters-2)
49
+ * [getProperties](#getproperties)
50
+ * [Parameters](#parameters-3)
49
51
  * [priority](#priority)
50
52
  * [expression](#expression)
51
- * [Parameters](#parameters-3)
52
- * [findService](#findservice)
53
53
  * [Parameters](#parameters-4)
54
- * [expand](#expand)
54
+ * [findService](#findservice)
55
55
  * [Parameters](#parameters-5)
56
+ * [property](#property)
57
+ * [Parameters](#parameters-6)
58
+ * [expand](#expand)
59
+ * [Parameters](#parameters-7)
56
60
  * [PortEndpoint](#portendpoint)
57
- * [Parameters](#parameters-6)
61
+ * [Parameters](#parameters-8)
58
62
  * [port](#port)
59
63
  * [socketAddress](#socketaddress)
60
64
  * [HTTPEndpoint](#httpendpoint)
61
- * [Parameters](#parameters-7)
65
+ * [Parameters](#parameters-9)
62
66
  * [port](#port-1)
63
67
  * [SkeletonNetworkInterface](#skeletonnetworkinterface)
64
68
  * [networkAddresses](#networkaddresses)
65
- * [Parameters](#parameters-8)
69
+ * [Parameters](#parameters-10)
66
70
  * [SystemdJournalRemoteService](#systemdjournalremoteservice)
67
71
  * [Properties](#properties)
68
72
  * [systemdConfigs](#systemdconfigs)
69
- * [Parameters](#parameters-9)
73
+ * [Parameters](#parameters-11)
70
74
  * [SystemdJournalUploadService](#systemdjournaluploadservice)
71
75
  * [Properties](#properties-1)
72
76
  * [systemdConfigs](#systemdconfigs-1)
73
- * [Parameters](#parameters-10)
77
+ * [Parameters](#parameters-12)
74
78
  * [NetworkAddress](#networkaddress)
75
- * [Parameters](#parameters-11)
79
+ * [Parameters](#parameters-13)
76
80
  * [subnet](#subnet)
77
81
  * [networkInterface](#networkinterface)
78
82
  * [address](#address)
79
83
  * [addresses](#addresses)
80
- * [Parameters](#parameters-12)
84
+ * [Parameters](#parameters-14)
81
85
  * [cidrAddresses](#cidraddresses)
82
- * [Parameters](#parameters-13)
86
+ * [Parameters](#parameters-15)
83
87
  * [isTemplate](#istemplate)
84
88
  * [services](#services)
85
- * [Parameters](#parameters-14)
89
+ * [Parameters](#parameters-16)
86
90
  * [named](#named)
87
- * [Parameters](#parameters-15)
91
+ * [Parameters](#parameters-17)
88
92
  * [serviceEndpoints](#serviceendpoints)
89
- * [Parameters](#parameters-16)
93
+ * [Parameters](#parameters-18)
90
94
  * [domainName](#domainname)
91
- * [Parameters](#parameters-17)
95
+ * [Parameters](#parameters-19)
92
96
  * [domainFromDominName](#domainfromdominname)
93
- * [Parameters](#parameters-18)
97
+ * [Parameters](#parameters-20)
94
98
  * [sectionLines](#sectionlines)
95
- * [Parameters](#parameters-19)
99
+ * [Parameters](#parameters-21)
96
100
  * [asArray](#asarray)
97
- * [Parameters](#parameters-20)
101
+ * [Parameters](#parameters-22)
98
102
  * [asIterator](#asiterator)
99
- * [Parameters](#parameters-21)
103
+ * [Parameters](#parameters-23)
100
104
 
101
105
  ## Base
102
106
 
107
+ attributes: essential values
108
+ properties: use defined values to support attribute value definitions
109
+
103
110
  ### Parameters
104
111
 
105
112
  * `owner` **[Base](#base)** 
106
113
  * `data` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** 
107
114
 
115
+ ### extendedAttribute
116
+
117
+ #### Parameters
118
+
119
+ * `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
120
+
121
+ Returns **any** 
122
+
108
123
  ### propertyIterator
109
124
 
110
125
  Retrive attribute values from an object.
@@ -146,6 +161,14 @@ Returns **any** 
146
161
 
147
162
  Returns **any** service with the highest priority
148
163
 
164
+ ### property
165
+
166
+ #### Parameters
167
+
168
+ * `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
169
+
170
+ Returns **any** 
171
+
149
172
  ### expand
150
173
 
151
174
  #### Parameters
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pmcf",
3
- "version": "4.8.1",
3
+ "version": "4.8.3",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
package/src/base.mjs CHANGED
@@ -605,7 +605,7 @@ export class Base {
605
605
  for (const node of this.walkDirections(["this", "extends", "owner"])) {
606
606
  const value = node._properties?.[name];
607
607
  if (value !== undefined) {
608
- return value;
608
+ return this.expand(value);
609
609
  }
610
610
  }
611
611
  }
package/src/host.mjs CHANGED
@@ -429,11 +429,11 @@ export class Host extends ServiceOwner {
429
429
  dir,
430
430
  sources: [
431
431
  new FileContentProvider(
432
- { base: this.directory, pattern: "*.pub" },
432
+ { dir: this.directory, pattern: "*.pub" },
433
433
  { destination: "/etc/ssh/", mode: 0o644 }
434
434
  ),
435
435
  new FileContentProvider(
436
- { base: this.directory, pattern: "*_key" },
436
+ { dir: this.directory, pattern: "*_key" },
437
437
  { destination: "/etc/ssh/", mode: 0o600 }
438
438
  ),
439
439
  new FileContentProvider(dir + "/")
package/src/location.mjs CHANGED
@@ -44,7 +44,7 @@ export class Location extends Owner {
44
44
  sources: [
45
45
  new FileContentProvider(dir + "/"),
46
46
  new FileContentProvider(
47
- { base: this.directory, pattern: "location.json" },
47
+ { dir: this.directory, pattern: "location.json" },
48
48
  { destination: "/etc/location/location.json" }
49
49
  )
50
50
  ],
@@ -54,8 +54,7 @@ export class Location extends Owner {
54
54
  description: `${this.typeName} definitions for ${this.fullName}`,
55
55
  access: "private",
56
56
  dependencies: { jq: ">=1.8" },
57
- provides: ["location", "mf-location"],
58
- replaces: [`mf-location-${this.name}`]
57
+ provides: ["location", "mf-location"]
59
58
  }
60
59
  };
61
60
 
@@ -7,7 +7,6 @@ import {
7
7
  } from "pacc";
8
8
  import { addServiceType } from "pmcf";
9
9
  import { ServiceTypeDefinition, Service } from "../service.mjs";
10
- import { addHook } from "../hooks.mjs";
11
10
 
12
11
  const OpenLDAPServiceTypeDefinition = {
13
12
  name: "openldap",
@@ -84,8 +83,6 @@ export class OpenLDAPService extends Service {
84
83
  }
85
84
 
86
85
  async *preparePackages(dir) {
87
- const host = this.host;
88
- const name = host.name;
89
86
  const owner = "ldap";
90
87
  const group = "ldap";
91
88
 
@@ -108,25 +105,13 @@ export class OpenLDAPService extends Service {
108
105
  ],
109
106
  outputs: this.outputs,
110
107
  properties: {
111
- name: `${this.typeName}-${this.location.name}-${name}`,
112
- description: `${this.typeName} definitions for ${this.fullName}@${name}`,
108
+ name: `${this.typeName}-${this.location.name}-${this.host.name}`,
109
+ description: `${this.typeName} definitions for ${this.fullName}@${this.host.name}`,
113
110
  access: "private",
114
111
  dependencies: ["openldap>=2.6.10"]
115
112
  }
116
113
  };
117
114
 
118
- addHook(
119
- packageData,
120
- "post_upgrade",
121
- `setfacl -m u:${owner}:r /etc/letsencrypt/archive/*/privkey*.pem`
122
- );
123
-
124
- addHook(
125
- packageData,
126
- "post_install",
127
- `setfacl -m u:${owner}:r /etc/letsencrypt/archive/*/privkey*.pem`
128
- );
129
-
130
115
  yield packageData;
131
116
  }
132
117
  }
@@ -361,7 +361,6 @@ export class Location extends Owner {
361
361
  jq: string;
362
362
  };
363
363
  provides: string[];
364
- replaces: string[];
365
364
  };
366
365
  }, void, unknown>;
367
366
  }