setName('ocm:keys:list') ->setDescription('list JWKS-published signing keys'); parent::configure(); } #[\Override] protected function execute(InputInterface $input, OutputInterface $output): int { $keys = $this->signatoryManager->listJwksKeys(); $format = $input->getOption('output'); if ($format === self::OUTPUT_FORMAT_JSON || $format === self::OUTPUT_FORMAT_JSON_PRETTY) { $output->writeln(json_encode($keys, $format === self::OUTPUT_FORMAT_JSON_PRETTY ? JSON_PRETTY_PRINT : 0)); return self::SUCCESS; } if ($keys === []) { $output->writeln('No JWKS keys yet; one will be generated on first OCM request.'); return self::SUCCESS; } $table = new Table($output); $table->setHeaders(['Pool', 'Slot', 'Key ID']); foreach ($keys as $key) { $table->addRow([$key['poolId'], $key['slot'] ?? '-', $key['kid']]); } $table->render(); return self::SUCCESS; } }