@super-protocol/pki-sync-client 2.0.12 → 3.0.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.
package/dist/cli.js CHANGED
@@ -19,6 +19,8 @@ async function sync(argv) {
19
19
  networkID: swarmEnv['pki-authority'].networkID,
20
20
  caBundle: swarmEnv['pki-authority'].caBundle,
21
21
  ownChallenge: argv.ownChallenge,
22
+ retryAttempts: argv.retryAttempts,
23
+ retryDelaySec: argv.retryTimeout,
22
24
  logLevel: argv.logLevel,
23
25
  disableServerIdentityCheck: argv.disableServerIdentityCheck,
24
26
  saveCertsToDir: argv.saveCertsToDir,
@@ -49,15 +51,25 @@ async function main() {
49
51
  demandOption: true,
50
52
  })
51
53
  .option('own-challenge', {
52
- describe: 'Own challenge string for authentication (auto, tdx, sev, untrusted)',
54
+ describe: 'Own challenge string for authentication (auto, tdx, sev-snp, untrusted)',
53
55
  type: 'string',
54
56
  default: 'auto',
55
57
  })
56
58
  .option('log-level', {
57
59
  alias: 'l',
58
- describe: 'Log level: fatal, error, warn, info, debug, trace',
60
+ describe: 'Log level',
59
61
  choices: Object.values(pki_common_1.LogLevel),
60
62
  type: 'string',
63
+ })
64
+ .option('retry-attempts', {
65
+ describe: 'Number of retry attempts per server for retryable network/DNS errors',
66
+ type: 'number',
67
+ default: 3,
68
+ })
69
+ .option('retry-timeout', {
70
+ describe: 'Timeout between retries in seconds for retryable network/DNS errors',
71
+ type: 'number',
72
+ default: 10,
61
73
  })
62
74
  .option('disable-server-identity-check', {
63
75
  describe: 'Disable server identity verification',
@@ -84,4 +96,4 @@ main().catch((error) => {
84
96
  console.error('Error:', error.message);
85
97
  process.exit(1);
86
98
  });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxrREFBMEI7QUFDMUIsMkNBQXdDO0FBQ3hDLHFDQUFzRDtBQUN0RCwrQ0FBMkM7QUFDM0MsMkRBQXNEO0FBRXRELE1BQU0sc0JBQXNCLEdBQUcsMEJBQTBCLENBQUM7QUFFMUQsS0FBSyxVQUFVLElBQUksQ0FBQyxJQUFTO0lBQ3pCLElBQUksQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBQSxzQkFBYSxFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLHdCQUFVLENBQUM7WUFDMUIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPO1lBQzFDLFNBQVMsRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUztZQUM5QyxRQUFRLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVE7WUFDNUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QiwwQkFBMEIsRUFBRSxJQUFJLENBQUMsMEJBQTBCO1lBQzNELGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7U0FDeEMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztRQUNsQixPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0FBQ0wsQ0FBQztBQUVELEtBQUssVUFBVSxJQUFJO0lBQ2YsTUFBTSxJQUFBLGVBQUssRUFBQyxJQUFBLGlCQUFPLEVBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzdCLEtBQUssQ0FBQywwQkFBMEIsQ0FBQztTQUNqQyxPQUFPLENBQ0osTUFBTSxFQUNOLDhCQUE4QixFQUM5QixDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ04sT0FBTyxLQUFLO2FBQ1AsTUFBTSxDQUFDLFdBQVcsRUFBRTtZQUNqQixRQUFRLEVBQUUseUNBQXlDO1lBQ25ELElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLHNCQUFzQjtTQUNsQyxDQUFDO2FBQ0QsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUNkLEtBQUssRUFBRSxHQUFHO1lBQ1YsUUFBUSxFQUFFLG9DQUFvQztZQUM5QyxJQUFJLEVBQUUsUUFBUTtZQUNkLFlBQVksRUFBRSxJQUFJO1NBQ3JCLENBQUM7YUFDRCxNQUFNLENBQUMsZUFBZSxFQUFFO1lBQ3JCLFFBQVEsRUFDSixxRUFBcUU7WUFDekUsSUFBSSxFQUFFLFFBQVE7WUFDZCxPQUFPLEVBQUUsTUFBTTtTQUNsQixDQUFDO2FBQ0QsTUFBTSxDQUFDLFdBQVcsRUFBRTtZQUNqQixLQUFLLEVBQUUsR0FBRztZQUNWLFFBQVEsRUFDSixtREFBbUQ7WUFDdkQsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMscUJBQVEsQ0FBQztZQUNoQyxJQUFJLEVBQUUsUUFBUTtTQUNqQixDQUFDO2FBQ0QsTUFBTSxDQUFDLCtCQUErQixFQUFFO1lBQ3JDLFFBQVEsRUFBRSxzQ0FBc0M7WUFDaEQsSUFBSSxFQUFFLFNBQVM7WUFDZixPQUFPLEVBQUUsS0FBSztTQUNqQixDQUFDO2FBQ0QsTUFBTSxDQUFDLG1CQUFtQixFQUFFO1lBQ3pCLFFBQVEsRUFDSixtRUFBbUU7WUFDdkUsSUFBSSxFQUFFLFFBQVE7U0FDakIsQ0FBQzthQUNELE1BQU0sQ0FBQyxtQkFBbUIsRUFBRTtZQUN6QixRQUFRLEVBQ0oscUVBQXFFO1lBQ3pFLElBQUksRUFBRSxRQUFRO1NBQ2pCLENBQUMsQ0FBQztJQUNYLENBQUMsRUFDRCxJQUFJLENBQ1A7U0FDQSxhQUFhLENBQUMsQ0FBQyxFQUFFLDRCQUE0QixDQUFDO1NBQzlDLElBQUksRUFBRTtTQUNOLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO1NBQ2xCLE9BQU8sRUFBRTtTQUNULEtBQUssQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDO1NBQ3JCLEtBQUssRUFBRSxDQUFDO0FBQ2pCLENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtJQUNuQixPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQixDQUFDLENBQUMsQ0FBQyJ9
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxrREFBMEI7QUFDMUIsMkNBQXdDO0FBQ3hDLHFDQUFzRDtBQUN0RCwrQ0FBMkM7QUFDM0MsMkRBQXNEO0FBRXRELE1BQU0sc0JBQXNCLEdBQUcsMEJBQTBCLENBQUM7QUFFMUQsS0FBSyxVQUFVLElBQUksQ0FBQyxJQUFTO0lBQ3pCLElBQUksQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBQSxzQkFBYSxFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLHdCQUFVLENBQUM7WUFDMUIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPO1lBQzFDLFNBQVMsRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUztZQUM5QyxRQUFRLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVE7WUFDNUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDaEMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLDBCQUEwQixFQUFFLElBQUksQ0FBQywwQkFBMEI7WUFDM0QsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ25DLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtTQUN4QyxDQUFDLENBQUM7UUFFSCxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFBQyxPQUFPLEtBQVUsRUFB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
@@ -1,22 +1,36 @@
1
1
  import { SyncConfig } from './config';
2
- import { LogLevel } from '@super-protocol/pki-common';
2
+ import { LogLevel, type DetectedCpuType } from '@super-protocol/pki-common';
3
3
  export interface SyncClientOptions {
4
4
  servers: string[];
5
5
  networkID: string;
6
6
  caBundle: string;
7
- ownChallenge: string;
7
+ ownChallenge: DetectedCpuType | 'auto';
8
+ retryAttempts?: number;
9
+ retryDelaySec?: number;
8
10
  logLevel?: LogLevel;
9
11
  disableServerIdentityCheck?: boolean;
10
12
  saveCertsToDir?: string;
11
13
  saveCertsPrefix?: string;
12
14
  }
13
15
  export declare class SyncClient {
16
+ private static readonly DEFAULT_RETRY_ATTEMPTS;
17
+ private static readonly DEFAULT_RETRY_DELAY_SEC;
18
+ private static readonly RETRYABLE_NETWORK_ERROR_CODES;
19
+ private static readonly RETRYABLE_HTTP_STATUS_CODES;
14
20
  private options;
15
21
  private challenge;
16
- private logger?;
22
+ private logger;
23
+ private retryAttempts;
24
+ private retryDelaySec;
25
+ private static readonly UNKNOWN_AXIOS_ERROR_REASON;
26
+ private static readonly NON_AXIOS_ERROR_REASON;
17
27
  private static resolveLogger;
18
- private static detectCpuType;
19
28
  constructor(options: SyncClientOptions);
29
+ private static normalizeRetryAttempts;
30
+ private static normalizeRetryDelaySec;
31
+ private static evaluateRetry;
32
+ private static waitRetryDelay;
33
+ private syncFromServer;
20
34
  private saveCertificates;
21
35
  sync(config: SyncConfig): Promise<void>;
22
36
  }
@@ -33,12 +33,27 @@ const axios_1 = __importDefault(require("axios"));
33
33
  const fs = __importStar(require("fs"));
34
34
  const path = __importStar(require("path"));
35
35
  class SyncClient {
36
+ static DEFAULT_RETRY_ATTEMPTS = 3;
37
+ static DEFAULT_RETRY_DELAY_SEC = 10;
38
+ static RETRYABLE_NETWORK_ERROR_CODES = new Set([
39
+ 'ETIMEDOUT',
40
+ 'ECONNRESET',
41
+ 'ECONNREFUSED',
42
+ 'EAI_AGAIN',
43
+ 'ENOTFOUND',
44
+ 'ECONNABORTED',
45
+ ]);
46
+ static RETRYABLE_HTTP_STATUS_CODES = new Set([429, 502]);
36
47
  options;
37
48
  challenge;
38
49
  logger;
50
+ retryAttempts;
51
+ retryDelaySec;
52
+ static UNKNOWN_AXIOS_ERROR_REASON = 'unknown-axios-error';
53
+ static NON_AXIOS_ERROR_REASON = 'non-axios-error';
39
54
  static resolveLogger(options) {
40
55
  if (options.logLevel == null) {
41
- return undefined;
56
+ return new pki_common_1.CommonMockLog();
42
57
  }
43
58
  const allowedLevels = Object.values(pki_common_1.LogLevel);
44
59
  if (!allowedLevels.includes(options.logLevel)) {
@@ -46,48 +61,116 @@ class SyncClient {
46
61
  }
47
62
  return new pki_common_1.CommonPinoLog(options.logLevel);
48
63
  }
49
- static detectCpuType() {
50
- try {
51
- const tdxPath = '/dev/tdx_guest';
52
- const sevPath = '/dev/sev-guest';
53
- if (fs.existsSync(tdxPath)) {
54
- const stats = fs.statSync(tdxPath);
55
- if (stats.isCharacterDevice()) {
56
- return 'tdx';
57
- }
58
- }
59
- if (fs.existsSync(sevPath)) {
60
- const stats = fs.statSync(sevPath);
61
- if (stats.isCharacterDevice()) {
62
- return 'sev';
63
- }
64
- }
65
- }
66
- catch (error) {
67
- // If we can't check devices, fall back to untrusted
68
- }
69
- return 'untrusted';
70
- }
71
64
  constructor(options) {
72
65
  this.options = options;
73
66
  this.logger = SyncClient.resolveLogger(options);
67
+ this.retryAttempts = SyncClient.normalizeRetryAttempts(options.retryAttempts);
68
+ this.retryDelaySec = SyncClient.normalizeRetryDelaySec(options.retryDelaySec);
74
69
  const challengeType = options.ownChallenge === 'auto'
75
- ? SyncClient.detectCpuType()
70
+ ? (0, pki_common_1.detectCpuType)()
76
71
  : options.ownChallenge;
77
- if (challengeType === 'tdx') {
72
+ if (challengeType === pki_common_1.ChallengeType.TDX) {
78
73
  this.challenge = { type: pki_common_1.ChallengeType.TDX };
79
74
  }
80
- else if (challengeType === 'sev') {
75
+ else if (challengeType === pki_common_1.ChallengeType.SEVSNP) {
81
76
  this.challenge = { type: pki_common_1.ChallengeType.SEVSNP };
82
77
  }
83
- else if (challengeType === 'untrusted') {
78
+ else if (challengeType === pki_common_1.ChallengeType.Untrusted) {
84
79
  this.challenge = {
85
80
  type: pki_common_1.ChallengeType.Untrusted,
86
81
  idHex: Buffer.from('pki-sync-client-untrusted-id').toString('hex'),
87
82
  };
88
83
  }
89
84
  else {
90
- throw new Error(`Unsupported challenge type: ${challengeType}. Supported: tdx, sev, untrusted, auto`);
85
+ throw new Error(`Unsupported challenge type: ${challengeType}. Supported: tdx, sev-snp, untrusted, auto`);
86
+ }
87
+ }
88
+ static normalizeRetryAttempts(value) {
89
+ if (value == null) {
90
+ return SyncClient.DEFAULT_RETRY_ATTEMPTS;
91
+ }
92
+ if (!Number.isInteger(value) || value < 1) {
93
+ throw new Error('Invalid retryAttempts: must be an integer greater than or equal to 1');
94
+ }
95
+ return value;
96
+ }
97
+ static normalizeRetryDelaySec(value) {
98
+ if (value == null) {
99
+ return SyncClient.DEFAULT_RETRY_DELAY_SEC;
100
+ }
101
+ if (!Number.isInteger(value) || value < 0) {
102
+ throw new Error('Invalid retryDelaySec: must be an integer greater than or equal to 0');
103
+ }
104
+ return value;
105
+ }
106
+ static evaluateRetry(error) {
107
+ if (!axios_1.default.isAxiosError(error)) {
108
+ return {
109
+ isRetryable: false,
110
+ reason: SyncClient.NON_AXIOS_ERROR_REASON,
111
+ };
112
+ }
113
+ const httpStatus = error.response?.status;
114
+ if (httpStatus != null) {
115
+ const reason = `http-status:${httpStatus}`;
116
+ return {
117
+ isRetryable: SyncClient.RETRYABLE_HTTP_STATUS_CODES.has(httpStatus),
118
+ reason,
119
+ };
120
+ }
121
+ const errorCode = error.code;
122
+ if (errorCode != null) {
123
+ const reason = `network-code:${errorCode}`;
124
+ return {
125
+ isRetryable: SyncClient.RETRYABLE_NETWORK_ERROR_CODES.has(errorCode),
126
+ reason,
127
+ };
128
+ }
129
+ return {
130
+ isRetryable: false,
131
+ reason: SyncClient.UNKNOWN_AXIOS_ERROR_REASON,
132
+ };
133
+ }
134
+ static async waitRetryDelay(delaySec) {
135
+ if (delaySec <= 0) {
136
+ return;
137
+ }
138
+ await new Promise((resolve) => {
139
+ setTimeout(resolve, delaySec * 1000);
140
+ });
141
+ }
142
+ async syncFromServer(server, config) {
143
+ this.logger.info(`Trying server: ${server}`);
144
+ const pkiConfig = {
145
+ clientCertProvider: {
146
+ type: 'pki-ca',
147
+ challenge: this.challenge,
148
+ baseUrl: `https://${server}/api/v1/pki`,
149
+ caBundle: this.options.caBundle,
150
+ disableServerIdentityCheck: this.options.disableServerIdentityCheck ?? false,
151
+ },
152
+ networkID: this.options.networkID,
153
+ };
154
+ const pkiClientFactory = new pki_client_1.PkiClientFactory(pkiConfig, this.logger);
155
+ const httpsAgent = await pkiClientFactory.getHTTPSAgent();
156
+ const secretNames = config.secrets.map((s) => s.secretName);
157
+ const response = await axios_1.default.post(`https://${server}/api/v1/secrets/get`, { objects: secretNames }, { httpsAgent });
158
+ const result = response.data;
159
+ for (const secret of config.secrets) {
160
+ const base64Content = result.secrets[secret.secretName];
161
+ if (base64Content == null) {
162
+ throw new Error(`Secret "${secret.secretName}" not found in response`);
163
+ }
164
+ const dir = path.dirname(secret.saveTo);
165
+ await fs.promises.mkdir(dir, { recursive: true });
166
+ await fs.promises.writeFile(secret.saveTo, base64Content, {
167
+ encoding: 'base64',
168
+ mode: 0o600,
169
+ });
170
+ this.logger.info(`Saved secret "${secret.secretName}" to ${secret.saveTo}`);
171
+ }
172
+ if (this.options.saveCertsToDir) {
173
+ await this.saveCertificates(pkiClientFactory, this.options.saveCertsToDir, this.options.saveCertsPrefix);
91
174
  }
92
175
  }
93
176
  async saveCertificates(pkiClientFactory, certsDir, prefix) {
@@ -101,70 +184,48 @@ class SyncClient {
101
184
  await fs.promises.writeFile(keyPath, cert.keyPair.privateKeyPem, {
102
185
  mode: 0o600,
103
186
  });
104
- this.logger?.info(`Saved private key to ${keyPath}`);
187
+ this.logger.info(`Saved private key to ${keyPath}`);
105
188
  // Save CA certificate
106
189
  const caPath = path.join(certsDir, `${prefixStr}ca.pem`);
107
190
  await fs.promises.writeFile(caPath, ca, { mode: 0o644 });
108
- this.logger?.info(`Saved CA certificate to ${caPath}`);
191
+ this.logger.info(`Saved CA certificate to ${caPath}`);
109
192
  // Save client certificate with intermediate chain
110
193
  const certWithIntermediate = clientCert + intermediateCertificates;
111
194
  const certPath = path.join(certsDir, `${prefixStr}cert.pem`);
112
195
  await fs.promises.writeFile(certPath, certWithIntermediate, {
113
196
  mode: 0o644,
114
197
  });
115
- this.logger?.info(`Saved certificate chain to ${certPath}`);
198
+ this.logger.info(`Saved certificate chain to ${certPath}`);
116
199
  }
117
200
  async sync(config) {
118
201
  for (const server of this.options.servers) {
119
- try {
120
- this.logger?.info(`Trying server: ${server}`);
121
- const pkiConfig = {
122
- clientCertProvider: {
123
- type: 'pki-ca',
124
- challenge: this.challenge,
125
- baseUrl: `https://${server}/api/v1/pki`,
126
- caBundle: this.options.caBundle,
127
- disableServerIdentityCheck: this.options.disableServerIdentityCheck ?? false,
128
- },
129
- networkID: this.options.networkID,
130
- };
131
- const pkiClientFactory = new pki_client_1.PkiClientFactory(pkiConfig, this.logger);
132
- const httpsAgent = await pkiClientFactory.getHTTPSAgent();
133
- // Collect all secret names
134
- const secretNames = config.secrets.map((s) => s.secretName);
135
- // Make POST request to fetch secrets
136
- const response = await axios_1.default.post(`https://${server}/api/v1/secrets/get`, { objects: secretNames }, { httpsAgent });
137
- const result = response.data;
138
- // Write secrets to files
139
- for (const secret of config.secrets) {
140
- const base64Content = result.secrets[secret.secretName];
141
- if (base64Content == null) {
142
- throw new Error(`Secret "${secret.secretName}" not found in response`);
143
- }
144
- // Ensure directory exists
145
- const dir = path.dirname(secret.saveTo);
146
- await fs.promises.mkdir(dir, { recursive: true });
147
- await fs.promises.writeFile(secret.saveTo, base64Content, {
148
- encoding: 'base64',
149
- mode: 0o600,
150
- });
151
- this.logger?.info(`Saved secret "${secret.secretName}" to ${secret.saveTo}`);
202
+ for (let attempt = 1; attempt <= this.retryAttempts; attempt++) {
203
+ try {
204
+ this.logger.info(`Sync attempt ${attempt}/${this.retryAttempts} for server: ${server}`);
205
+ await this.syncFromServer(server, config);
206
+ this.logger.info(`Successfully synced from server: ${server}`);
207
+ return;
152
208
  }
153
- // Save certificates if directory is specified
154
- if (this.options.saveCertsToDir) {
155
- await this.saveCertificates(pkiClientFactory, this.options.saveCertsToDir, this.options.saveCertsPrefix);
209
+ catch (error) {
210
+ const errorMessage = error instanceof Error ? error.message : String(error);
211
+ const retryDecision = SyncClient.evaluateRetry(error);
212
+ const hasMoreAttempts = attempt < this.retryAttempts;
213
+ this.logger.error(`Failed attempt ${attempt}/${this.retryAttempts} for server ${server}: ${errorMessage}. Reason: ${retryDecision.reason}`);
214
+ if (!retryDecision.isRetryable) {
215
+ this.logger.error(`Error is not retryable for server ${server}; moving to next server. Reason: ${retryDecision.reason}`);
216
+ break;
217
+ }
218
+ if (!hasMoreAttempts) {
219
+ this.logger.error(`Retry attempts exhausted for server ${server}; moving to next server. Reason: ${retryDecision.reason}`);
220
+ break;
221
+ }
222
+ this.logger.info(`Retrying server ${server} in ${this.retryDelaySec} second(s). Reason: ${retryDecision.reason}`);
223
+ await SyncClient.waitRetryDelay(this.retryDelaySec);
156
224
  }
157
- this.logger?.info(`Successfully synced from server: ${server}`);
158
- return; // Success - exit from method
159
- }
160
- catch (error) {
161
- const errorMessage = error instanceof Error ? error.message : String(error);
162
- this.logger?.error(`Failed to sync from server ${server}: ${errorMessage}`);
163
- // Continue to next server
164
225
  }
165
226
  }
166
227
  throw new Error('Failed to sync from all servers');
167
228
  }
168
229
  }
169
230
  exports.SyncClient = SyncClient;
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3luYy1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSwyREFJb0M7QUFDcEMsMkRBS29DO0FBQ3BDLGtEQUEwQjtBQUMxQix1Q0FBeUI7QUFDekIsMkNBQTZCO0FBYTdCLE1BQWEsVUFBVTtJQUNYLE9BQU8sQ0FBb0I7SUFDM0IsU0FBUyxDQUFrQjtJQUMzQixNQUFNLENBQWlCO0lBRXZCLE1BQU0sQ0FBQyxhQUFhLENBQ3hCLE9BQTBCO1FBRTFCLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMzQixPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxxQkFBUSxDQUFhLENBQUM7UUFDMUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FDWCwwQkFBMEIsT0FBTyxDQUFDLFFBQVEsZ0JBQWdCLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDdkYsQ0FBQztRQUNOLENBQUM7UUFFRCxPQUFPLElBQUksMEJBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVPLE1BQU0sQ0FBQyxhQUFhO1FBQ3hCLElBQUksQ0FBQztZQUNELE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDO1lBQ2pDLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDO1lBRWpDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUN6QixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLEtB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
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3luYy1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSwyREFJb0M7QUFDcEMsMkRBU29DO0FBQ3BDLGtEQUEwQjtBQUMxQix1Q0FBeUI7QUFDekIsMkNBQTZCO0FBZTdCLE1BQWEsVUFBVTtJQUNYLE1BQU0sQ0FBVSxzQkFBc0IsR0FBRyxDQUFDLENBQUM7SUFDM0MsTUFBTSxDQUFVLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztJQUM3QyxNQUFNLENBQVUsNkJBQTZCLEdBQUcsSUFBSSxHQUFHLENBQUM7UUFDNUQsV0FBVztRQUNYLFlBQVk7UUFDWixjQUFjO1FBQ2QsV0FBVztRQUNYLFdBQVc7UUFDWCxjQUFjO0tBQ2pCLENBQUMsQ0FBQztJQUNLLE1BQU0sQ0FBVSwyQkFBMkIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRWxFLE9BQU8sQ0FBb0I7SUFDM0IsU0FBUyxDQUFrQjtJQUMzQixNQUFNLENBQU07SUFDWixhQUFhLENBQVM7SUFDdEIsYUFBYSxDQUFTO0lBRXRCLE1BQU0sQ0FBVSwwQkFBMEIsR0FBRyxxQkFBcUIsQ0FBQztJQUVuRSxNQUFNLENBQVUsc0JBQXNCLEdBQUcsaUJBQWlCLENBQUM7SUFFM0QsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUEwQjtRQUNuRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJLDBCQUFPLEVBQUUsQ0FBQztRQUN6QixDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxxQkFBUSxDQUFhLENBQUM7UUFDMUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFD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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@super-protocol/pki-sync-client",
3
- "version": "2.0.12",
3
+ "version": "3.0.0",
4
4
  "description": "PKI sync client utility",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -23,8 +23,8 @@
23
23
  "license": "ISC",
24
24
  "dependencies": {
25
25
  "@sinclair/typebox": "0.33.22",
26
- "@super-protocol/pki-client": "^2.1.8",
27
- "@super-protocol/pki-common": "^2.0.4",
26
+ "@super-protocol/pki-client": "^3.0.0",
27
+ "@super-protocol/pki-common": "^3.0.2",
28
28
  "axios": "^1.7.0",
29
29
  "js-yaml": "^4.1.0",
30
30
  "yargs": "^17.7.2"