pepr 0.6.0 → 0.7.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAOvC,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,qHAAqH;IACrH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAEpC,6GAA6G;IAC7G,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF,qBAAa,UAAU;IACrB,OAAO,CAAC,WAAW,CAAa;IAEhC;;;;;;OAMG;gBACS,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,YAAY,GAAE,UAAU,EAAO,EAAE,IAAI,GAAE,iBAAsB;IAc7G;;;;;OAKG;IACH,KAAK,CAAC,IAAI,SAAO;CAGlB"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAOvC,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,qHAAqH;IACrH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAEpC,6GAA6G;IAC7G,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF,qBAAa,UAAU;IACrB,OAAO,CAAC,WAAW,CAAc;IAEjC;;;;;;OAMG;gBACS,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,YAAY,GAAE,UAAU,EAAO,EAAE,IAAI,GAAE,iBAAsB;IAoB7G;;;;;OAKG;IACH,KAAK,CAAC,IAAI,SAAO;CAGlB"}
@@ -1,5 +1,5 @@
1
1
  import { Capability } from "./capability";
2
2
  import { Request, Response } from "./k8s/types";
3
3
  import { ModuleConfig } from "./types";
4
- export declare function processor(config: ModuleConfig, capabilities: Capability[], req: Request): Promise<Response>;
4
+ export declare function processor(config: ModuleConfig, capabilities: Capability[], req: Request, parentPrefix: string): Promise<Response>;
5
5
  //# sourceMappingURL=processor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../src/lib/processor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIhD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,wBAAsB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CA6FjH"}
1
+ {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../src/lib/processor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIhD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,wBAAsB,SAAS,CAC7B,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,UAAU,EAAE,EAC1B,GAAG,EAAE,OAAO,EACZ,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,CAAC,CAiHnB"}
@@ -75,10 +75,4 @@ export declare class PeprRequest<T extends KubernetesObject> {
75
75
  */
76
76
  HasAnnotation(key: string): boolean;
77
77
  }
78
- export declare function convertToBase64Map(obj: {
79
- data?: Record<string, string>;
80
- }): void;
81
- export declare function convertFromBase64Map(obj: {
82
- data?: Record<string, string>;
83
- }): void;
84
78
  //# sourceMappingURL=request.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/lib/request.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;;GAGG;AACH,qBAAa,WAAW,CAAC,CAAC,SAAS,gBAAgB;IAmCrC,OAAO,CAAC,MAAM;IAlCnB,GAAG,EAAE,CAAC,CAAC;IAEd,IAAI,iBAAiB,YAEpB;IAED;;;OAGG;IACH,IAAI,QAAQ,wBAEX;IAED;;;OAGG;IACH,IAAI,WAAW,kBAEd;IAED;;;OAGG;IACH,IAAI,OAAO,eAEV;IAED;;;OAGG;gBACiB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAUtC;;;;OAIG;IACH,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IAIzB;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAUnC;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAUxC;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM;IAOvB;;;;OAIG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM;IAO5B;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM;IAIpB;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM;CAG1B;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,QAKxE;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,QAK1E"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/lib/request.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;;GAGG;AACH,qBAAa,WAAW,CAAC,CAAC,SAAS,gBAAgB;IAmCrC,OAAO,CAAC,MAAM;IAlCnB,GAAG,EAAE,CAAC,CAAC;IAEd,IAAI,iBAAiB,YAEpB;IAED;;;OAGG;IACH,IAAI,QAAQ,wBAEX;IAED;;;OAGG;IACH,IAAI,WAAW,kBAEd;IAED;;;OAGG;IACH,IAAI,OAAO,eAEV;IAED;;;OAGG;gBACiB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAKtC;;;;OAIG;IACH,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IAIzB;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAUnC;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAUxC;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM;IAOvB;;;;OAIG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM;IAO5B;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM;IAIpB;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM;CAG1B"}
@@ -34,7 +34,8 @@ export declare enum Event {
34
34
  Create = "CREATE",
35
35
  Update = "UPDATE",
36
36
  Delete = "DELETE",
37
- CreateOrUpdate = "CREATEORUPDATE"
37
+ CreateOrUpdate = "CREATEORUPDATE",
38
+ Any = "*"
38
39
  }
39
40
  export interface CapabilityCfg {
40
41
  /**
@@ -106,7 +107,7 @@ export type WhenSelector<T extends GenericClass> = {
106
107
  IsDeleted: () => BindingAll<T>;
107
108
  };
108
109
  export type Binding = {
109
- event?: Event;
110
+ event: Event;
110
111
  readonly kind: GroupVersionKind;
111
112
  readonly filters: {
112
113
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /** Test if a string is ascii or not */
2
+ export declare const isAscii: RegExp;
3
+ /**
4
+ * Encode all ascii values in a map to base64
5
+ * @param obj The object to encode
6
+ * @param skip A list of keys to skip encoding
7
+ */
8
+ export declare function convertToBase64Map(obj: {
9
+ data?: Record<string, string>;
10
+ }, skip: string[]): void;
11
+ /**
12
+ * Decode all ascii values in a map from base64 to utf-8
13
+ * @param obj The object to decode
14
+ * @returns A list of keys that were skipped
15
+ */
16
+ export declare function convertFromBase64Map(obj: {
17
+ data?: Record<string, string>;
18
+ }): string[];
19
+ /** Decode a base64 string */
20
+ export declare function base64Decode(data: string): string;
21
+ /** Encode a string to base64 */
22
+ export declare function base64Encode(data: string): string;
23
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAKA,uCAAuC;AACvC,eAAO,MAAM,OAAO,QAAqB,CAAC;AAE1C;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAOxF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,YAiB1E;AAED,6BAA6B;AAC7B,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,UAExC;AAED,gCAAgC;AAChC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,UAExC"}
package/dist/lib.d.ts CHANGED
@@ -7,9 +7,10 @@ import { RegisterKind, a } from "./lib/k8s/index";
7
7
  import Log from "./lib/logger";
8
8
  import { PeprModule } from "./lib/module";
9
9
  import { PeprRequest } from "./lib/request";
10
+ import * as PeprUtils from "./lib/utils";
10
11
  import type * as KubernetesClientNode from "@kubernetes/client-node";
11
12
  import type * as RamdaUtils from "ramda";
12
13
  export { a,
13
14
  /** PeprModule is used to setup a complete Pepr Module: `new PeprModule(cfg, {...capabilities})` */
14
- PeprModule, PeprRequest, RegisterKind, Capability, Log, utils, fetch, fetchRaw, fetchStatus, k8s, RamdaUtils, KubernetesClientNode, };
15
+ PeprModule, PeprRequest, PeprUtils, RegisterKind, Capability, Log, utils, fetch, fetchRaw, fetchStatus, k8s, RamdaUtils, KubernetesClientNode, };
15
16
  //# sourceMappingURL=lib.d.ts.map
package/dist/lib.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,yBAAyB,CAAC;AAC1C,OAAO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,KAAK,KAAK,oBAAoB,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,KAAK,UAAU,MAAM,OAAO,CAAC;AAEzC,OAAO,EACL,CAAC;AACD,mGAAmG;AACnG,UAAU,EACV,WAAW,EACX,YAAY,EACZ,UAAU,EACV,GAAG,EACH,KAAK,EACL,KAAK,EACL,QAAQ,EACR,WAAW,EACX,GAAG,EAGH,UAAU,EACV,oBAAoB,GACrB,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,yBAAyB,CAAC;AAC1C,OAAO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAGzC,OAAO,KAAK,KAAK,oBAAoB,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,KAAK,UAAU,MAAM,OAAO,CAAC;AAEzC,OAAO,EACL,CAAC;AACD,mGAAmG;AACnG,UAAU,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,UAAU,EACV,GAAG,EACH,KAAK,EACL,KAAK,EACL,QAAQ,EACR,WAAW,EACX,GAAG,EAGH,UAAU,EACV,oBAAoB,GACrB,CAAC"}
package/dist/lib.js CHANGED
@@ -34,6 +34,7 @@ __export(lib_exports, {
34
34
  Log: () => logger_default,
35
35
  PeprModule: () => PeprModule,
36
36
  PeprRequest: () => PeprRequest,
37
+ PeprUtils: () => utils_exports,
37
38
  RegisterKind: () => RegisterKind,
38
39
  a: () => upstream_exports,
39
40
  fetch: () => fetch,
@@ -122,7 +123,8 @@ var gvkMap = {
122
123
  V1Endpoint: {
123
124
  kind: "Endpoints",
124
125
  version: "v1",
125
- group: ""
126
+ group: "",
127
+ plural: "endpoints"
126
128
  },
127
129
  /**
128
130
  * Represents a K8s LimitRange resource.
@@ -452,7 +454,8 @@ var gvkMap = {
452
454
  V1Ingress: {
453
455
  kind: "Ingress",
454
456
  version: "v1",
455
- group: "networking.k8s.io"
457
+ group: "networking.k8s.io",
458
+ plural: "ingresses"
456
459
  },
457
460
  /**
458
461
  * Represents a K8s NetworkPolicy resource.
@@ -669,6 +672,7 @@ var Capability = class {
669
672
  const binding = {
670
673
  // If the kind is not specified, use the matched kind from the model
671
674
  kind: kind || matchedKind,
675
+ event: "*" /* Any */,
672
676
  filters: {
673
677
  name: "",
674
678
  namespaces: [],
@@ -791,7 +795,7 @@ function shouldSkipRequest(binding, req) {
791
795
  const { group, kind, version } = binding.kind || {};
792
796
  const { namespaces, labels, annotations, name } = binding.filters || {};
793
797
  const { metadata } = req.object || {};
794
- if (binding.event && !binding.event.includes(req.operation)) {
798
+ if (!binding.event.includes(req.operation) && !binding.event.includes("*" /* Any */)) {
795
799
  return true;
796
800
  }
797
801
  if (name && name !== req.name) {
@@ -845,9 +849,6 @@ var PeprRequest = class {
845
849
  constructor(_input) {
846
850
  this._input = _input;
847
851
  this.Raw = (0, import_ramda.clone)(_input.object);
848
- if (_input.kind.version == "v1" && _input.kind.kind == "Secret") {
849
- convertFromBase64Map(this.Raw);
850
- }
851
852
  }
852
853
  Raw;
853
854
  get PermitSideEffects() {
@@ -949,36 +950,69 @@ var PeprRequest = class {
949
950
  return this.Raw?.metadata?.annotations?.[key] !== void 0;
950
951
  }
951
952
  };
952
- function convertToBase64Map(obj) {
953
+
954
+ // src/lib/utils.ts
955
+ var utils_exports = {};
956
+ __export(utils_exports, {
957
+ base64Decode: () => base64Decode,
958
+ base64Encode: () => base64Encode,
959
+ convertFromBase64Map: () => convertFromBase64Map,
960
+ convertToBase64Map: () => convertToBase64Map,
961
+ isAscii: () => isAscii
962
+ });
963
+ var isAscii = /^[\s\x20-\x7E]*$/;
964
+ function convertToBase64Map(obj, skip) {
953
965
  obj.data = obj.data ?? {};
954
966
  for (const key in obj.data) {
955
- obj.data[key] = Buffer.from(obj.data[key]).toString("base64");
967
+ const value = obj.data[key];
968
+ obj.data[key] = skip.includes(key) ? value : base64Encode(value);
956
969
  }
957
970
  }
958
971
  function convertFromBase64Map(obj) {
972
+ const skip = [];
959
973
  obj.data = obj.data ?? {};
960
974
  for (const key in obj.data) {
961
- obj.data[key] = Buffer.from(obj.data[key], "base64").toString("utf-8");
975
+ const decoded = base64Decode(obj.data[key]);
976
+ if (isAscii.test(decoded)) {
977
+ obj.data[key] = decoded;
978
+ } else {
979
+ skip.push(key);
980
+ }
962
981
  }
982
+ logger_default.debug(`Non-ascii data detected in keys: ${skip}, skipping automatic base64 decoding`);
983
+ return skip;
984
+ }
985
+ function base64Decode(data) {
986
+ return Buffer.from(data, "base64").toString("utf-8");
987
+ }
988
+ function base64Encode(data) {
989
+ return Buffer.from(data).toString("base64");
963
990
  }
964
991
 
965
992
  // src/lib/processor.ts
966
- async function processor(config, capabilities, req) {
993
+ async function processor(config, capabilities, req, parentPrefix) {
967
994
  const wrapped = new PeprRequest(req);
968
995
  const response = {
969
996
  uid: req.uid,
970
997
  warnings: [],
971
998
  allowed: false
972
999
  };
973
- logger_default.info(`Processing '${req.uid}' for '${req.kind.kind}' '${req.name}'`);
1000
+ let matchedCapabilityAction = false;
1001
+ let skipDecode = [];
1002
+ const isSecret = req.kind.version == "v1" && req.kind.kind == "Secret";
1003
+ if (isSecret) {
1004
+ skipDecode = convertFromBase64Map(wrapped.Raw);
1005
+ }
1006
+ logger_default.info(`Processing request`, parentPrefix);
974
1007
  for (const { name, bindings } of capabilities) {
975
- const prefix = `${req.uid} ${req.name}: ${name}`;
976
- logger_default.info(`Processing capability ${name}`, prefix);
1008
+ const prefix = `${parentPrefix} ${name}:`;
977
1009
  for (const action of bindings) {
978
1010
  if (shouldSkipRequest(action, req)) {
979
1011
  continue;
980
1012
  }
981
- logger_default.info(`Processing matched action ${action.kind.kind}`, prefix);
1013
+ const label = action.callback.name;
1014
+ logger_default.info(`Processing matched action ${label}`, prefix);
1015
+ matchedCapabilityAction = true;
982
1016
  const updateStatus = (status) => {
983
1017
  if (req.operation == "DELETE") {
984
1018
  return;
@@ -1008,9 +1042,13 @@ async function processor(config, capabilities, req) {
1008
1042
  }
1009
1043
  }
1010
1044
  response.allowed = true;
1045
+ if (!matchedCapabilityAction) {
1046
+ logger_default.info(`No matching capability action found`, parentPrefix);
1047
+ return response;
1048
+ }
1011
1049
  const transformed = wrapped.Raw;
1012
- if (req.kind.version == "v1" && req.kind.kind == "Secret") {
1013
- convertToBase64Map(transformed);
1050
+ if (isSecret) {
1051
+ convertToBase64Map(transformed, skipDecode);
1014
1052
  }
1015
1053
  const patches = import_fast_json_patch.default.compare(req.object, transformed);
1016
1054
  if (patches.length > 0) {
@@ -1020,15 +1058,11 @@ async function processor(config, capabilities, req) {
1020
1058
  if (response.warnings && response.warnings.length < 1) {
1021
1059
  delete response.warnings;
1022
1060
  }
1023
- logger_default.debug(patches);
1061
+ logger_default.debug(patches, parentPrefix);
1024
1062
  return response;
1025
1063
  }
1026
1064
 
1027
1065
  // src/lib/controller.ts
1028
- var options = {
1029
- key: import_fs.default.readFileSync(process.env.SSL_KEY_PATH || "/etc/certs/tls.key"),
1030
- cert: import_fs.default.readFileSync(process.env.SSL_CERT_PATH || "/etc/certs/tls.crt")
1031
- };
1032
1066
  var Controller = class {
1033
1067
  constructor(config, capabilities, beforeHook, afterHook) {
1034
1068
  this.config = config;
@@ -1053,6 +1087,10 @@ var Controller = class {
1053
1087
  if (this.running) {
1054
1088
  throw new Error("Cannot start Pepr module: Pepr module was not instantiated with deferStart=true");
1055
1089
  }
1090
+ const options = {
1091
+ key: import_fs.default.readFileSync(process.env.SSL_KEY_PATH || "/etc/certs/tls.key"),
1092
+ cert: import_fs.default.readFileSync(process.env.SSL_CERT_PATH || "/etc/certs/tls.crt")
1093
+ };
1056
1094
  const server = import_https.default.createServer(options, this.app).listen(port);
1057
1095
  server.on("listening", () => {
1058
1096
  console.log(`Server listening on port ${port}`);
@@ -1060,7 +1098,9 @@ var Controller = class {
1060
1098
  });
1061
1099
  server.on("error", (e) => {
1062
1100
  if (e.code === "EADDRINUSE") {
1063
- console.log("Address in use, retrying...");
1101
+ console.log(
1102
+ `Address in use, retrying in 2 seconds. If this persists, ensure ${port} is not in use, e.g. "lsof -i :${port}"`
1103
+ );
1064
1104
  setTimeout(() => {
1065
1105
  server.close();
1066
1106
  server.listen(port);
@@ -1080,7 +1120,7 @@ var Controller = class {
1080
1120
  res.on("finish", () => {
1081
1121
  const now = (/* @__PURE__ */ new Date()).toISOString();
1082
1122
  const elapsedTime = Date.now() - startTime;
1083
- const message = `[${now}] ${req.method} ${req.originalUrl} - ${res.statusCode} - ${elapsedTime} ms
1123
+ const message = `[${now}] ${req.method} ${req.originalUrl} [${res.statusCode}] ${elapsedTime} ms
1084
1124
  `;
1085
1125
  res.statusCode >= 400 ? console.error(message) : console.info(message);
1086
1126
  });
@@ -1096,16 +1136,16 @@ var Controller = class {
1096
1136
  };
1097
1137
  mutate = async (req, res) => {
1098
1138
  try {
1099
- this.beforeHook && this.beforeHook(req.body?.request || {});
1100
- const name = req.body?.request?.name || "";
1101
- const namespace = req.body?.request?.namespace || "";
1102
- const gvk = req.body?.request?.kind || { group: "", version: "", kind: "" };
1103
- console.log(`Mutate request: ${gvk.group}/${gvk.version}/${gvk.kind}`);
1104
- name && console.log(` ${namespace}/${name}
1105
- `);
1106
- const response = await processor(this.config, this.capabilities, req.body.request);
1139
+ const request = req.body?.request || {};
1140
+ this.beforeHook && this.beforeHook(request || {});
1141
+ const name = request?.name ? `/${request.name}` : "";
1142
+ const namespace = request?.namespace || "";
1143
+ const gvk = request?.kind || { group: "", version: "", kind: "" };
1144
+ const prefix = `${request.uid} ${namespace}${name}`;
1145
+ logger_default.info(`Mutate request: ${gvk.group}/${gvk.version}/${gvk.kind}`, prefix);
1146
+ const response = await processor(this.config, this.capabilities, request, prefix);
1107
1147
  this.afterHook && this.afterHook(response);
1108
- console.debug(response);
1148
+ logger_default.debug(response, prefix);
1109
1149
  res.send({
1110
1150
  apiVersion: "admission.k8s.io/v1",
1111
1151
  kind: "AdmissionReview",
@@ -1135,6 +1175,10 @@ var PeprModule = class {
1135
1175
  constructor({ description, pepr }, capabilities = [], opts = {}) {
1136
1176
  const config = (0, import_ramda2.mergeDeepWith)(import_ramda2.concat, pepr, alwaysIgnore);
1137
1177
  config.description = description;
1178
+ if (process.env.PEPR_MODE === "build") {
1179
+ process.send?.({ capabilities });
1180
+ return;
1181
+ }
1138
1182
  this._controller = new Controller(config, capabilities, opts.beforeHook, opts.afterHook);
1139
1183
  if (opts.deferStart) {
1140
1184
  return;
@@ -1157,6 +1201,7 @@ var PeprModule = class {
1157
1201
  Log,
1158
1202
  PeprModule,
1159
1203
  PeprRequest,
1204
+ PeprUtils,
1160
1205
  RegisterKind,
1161
1206
  a,
1162
1207
  fetch,