@@ -31,11 +31,11 @@ import Discovery from './discovery/Discovery';
31
31
import SessionManager from './sessions/SessionManager' ;
32
32
import IdentitiesManager from './identities/IdentitiesManager' ;
33
33
import { providers } from './identities' ;
34
- import { EventBus , captureRejectionSymbol } from './events' ;
35
34
import config from './config' ;
36
35
import * as errors from './errors' ;
37
36
import * as utils from './utils' ;
38
37
import * as keysUtils from './keys/utils' ;
38
+ import * as keysEvents from './keys/events' ;
39
39
import * as nodesUtils from './nodes/utils' ;
40
40
import * as nodesEvents from './nodes/events' ;
41
41
import * as workersUtils from './workers/utils' ;
@@ -99,15 +99,6 @@ interface PolykeyAgent extends CreateDestroyStartStop {}
99
99
new errors . ErrorPolykeyAgentDestroyed ( ) ,
100
100
)
101
101
class PolykeyAgent {
102
- /**
103
- * Event symbols
104
- * These represent event topics
105
- */
106
- public static readonly eventSymbols = {
107
- [ CertManager . name ] : Symbol ( CertManager . name ) ,
108
- } as {
109
- readonly CertManager : unique symbol ;
110
- } ;
111
102
112
103
/**
113
104
* Create the Polykey Agent.
@@ -240,9 +231,6 @@ class PolykeyAgent {
240
231
const dbPath = path . join ( statePath , config . paths . dbBase ) ;
241
232
const keysPath = path . join ( statePath , config . paths . keysBase ) ;
242
233
const vaultsPath = path . join ( statePath , config . paths . vaultsBase ) ;
243
- const events = new EventBus ( {
244
- captureRejections : true ,
245
- } ) ;
246
234
let pkAgentProm : PromiseDeconstructed < PolykeyAgent > | undefined ;
247
235
try {
248
236
status =
@@ -322,8 +310,6 @@ class PolykeyAgent {
322
310
taskManager,
323
311
certDuration : optionsDefaulted . keys . certDuration ,
324
312
certRenewLeadTime : optionsDefaulted . keys . certRenewLeadTime ,
325
- changeCallback : async ( data ) =>
326
- events . emitAsync ( PolykeyAgent . eventSymbols . CertManager , data ) ,
327
313
logger : logger . getChild ( CertManager . name ) ,
328
314
fresh,
329
315
} ) ) ;
@@ -574,7 +560,6 @@ class PolykeyAgent {
574
560
rpcServerClient,
575
561
webSocketServerClient,
576
562
rpcServerAgent,
577
- events,
578
563
fs,
579
564
logger,
580
565
} ) ;
@@ -614,7 +599,6 @@ class PolykeyAgent {
614
599
public readonly vaultManager : VaultManager ;
615
600
public readonly notificationsManager : NotificationsManager ;
616
601
public readonly sessionManager : SessionManager ;
617
- public readonly events : EventBus ;
618
602
public readonly fs : FileSystem ;
619
603
public readonly logger : Logger ;
620
604
public readonly rpcServerClient : RPCServer ;
@@ -649,7 +633,6 @@ class PolykeyAgent {
649
633
rpcServerClient,
650
634
webSocketServerClient,
651
635
rpcServerAgent,
652
- events,
653
636
fs,
654
637
logger,
655
638
} : {
@@ -674,7 +657,6 @@ class PolykeyAgent {
674
657
rpcServerClient : RPCServer ;
675
658
webSocketServerClient : WebSocketServer ;
676
659
rpcServerAgent : RPCServer ;
677
- events : EventBus ;
678
660
fs : FileSystem ;
679
661
logger : Logger ;
680
662
} ) {
@@ -700,7 +682,6 @@ class PolykeyAgent {
700
682
this . rpcServerClient = rpcServerClient ;
701
683
this . webSocketServerClient = webSocketServerClient ;
702
684
this . rpcServerAgent = rpcServerAgent ;
703
- this . events = events ;
704
685
this . fs = fs ;
705
686
}
706
687
@@ -727,43 +708,26 @@ class PolykeyAgent {
727
708
} ) ;
728
709
try {
729
710
this . logger . info ( `Starting ${ this . constructor . name } ` ) ;
730
- // Set up error handling for event handlers
731
- this . events [ captureRejectionSymbol ] = ( err , event : symbol ) => {
732
- let msg = `EventBus error for ${ event . toString ( ) } ` ;
733
- if ( err instanceof errors . ErrorPolykey ) {
734
- msg += `: ${ err . name } : ${ err . description } ` ;
735
- if ( err . message !== '' ) {
736
- msg += ` - ${ err . message } ` ;
737
- }
738
- } else {
739
- msg += `: ${ err . name } ` ;
740
- if ( err . message !== '' ) {
741
- msg += `: ${ err . message } ` ;
742
- }
743
- }
744
- this . logger . error ( msg ) ;
745
- throw err ;
746
- } ;
747
711
// Register event handlers
748
- this . events . on (
749
- PolykeyAgent . eventSymbols . CertManager ,
750
- async ( data : CertManagerChangeData ) => {
751
- this . logger . info ( `${ KeyRing . name } change propagating` ) ;
752
- await this . status . updateStatusLive ( {
753
- nodeId : data . nodeId ,
754
- } ) ;
755
- await this . nodeManager . resetBuckets ( ) ;
756
- // Update the sigchain
757
- await this . sigchain . onKeyRingChange ( ) ;
758
- const tlsConfig : TLSConfig = {
759
- keyPrivatePem : keysUtils . privateKeyToPEM ( data . keyPair . privateKey ) ,
760
- certChainPem : await this . certManager . getCertPEMsChainPEM ( ) ,
761
- } ;
762
- this . webSocketServerClient . setTlsConfig ( tlsConfig ) ;
763
- this . nodeConnectionManager . updateTlsConfig ( tlsConfig ) ;
764
- this . logger . info ( `${ KeyRing . name } change propagated` ) ;
765
- } ,
766
- ) ;
712
+ // FIXME: we need to handle the EventCertManagerCertChanged event to update the status
713
+ const handleCertChange = async ( evt : keysEvents . EventsCertManagerCertChange ) => {
714
+ const data = evt . detail
715
+ this . logger . info ( `${ KeyRing . name } change propagating` ) ;
716
+ await this . status . updateStatusLive ( {
717
+ nodeId : data . nodeId ,
718
+ } ) ;
719
+ await this . nodeManager . resetBuckets ( ) ;
720
+ // Update the sigchain
721
+ await this . sigchain . onKeyRingChange ( ) ;
722
+ const tlsConfig : TLSConfig = {
723
+ keyPrivatePem : keysUtils . privateKeyToPEM ( data . keyPair . privateKey ) ,
724
+ certChainPem : await this . certManager . getCertPEMsChainPEM ( ) ,
725
+ } ;
726
+ this . webSocketServerClient . setTlsConfig ( tlsConfig ) ;
727
+ this . nodeConnectionManager . updateTlsConfig ( tlsConfig ) ;
728
+ this . logger . info ( `${ KeyRing . name } change propagated` ) ;
729
+ }
730
+ this . certManager . addEventListener ( keysEvents . EventsCertManagerCertChange . name , handleCertChange ) ;
767
731
await this . status . start ( { pid : process . pid } ) ;
768
732
await this . schema . start ( { fresh } ) ;
769
733
// Starting modules
@@ -854,7 +818,7 @@ class PolykeyAgent {
854
818
this . logger . warn (
855
819
`Failed Starting ${ this . constructor . name } with ${ e . message } ` ,
856
820
) ;
857
- this . events . removeAllListeners ( ) ;
821
+ this . certManager . removeEventListener ( keysEvents . EventsCertManagerCertChange . name , handleCertChange ) ;
858
822
await this . status ?. beginStop ( { pid : process . pid } ) ;
859
823
await this . taskManager ?. stopProcessing ( ) ;
860
824
await this . taskManager ?. stopTasks ( ) ;
@@ -892,7 +856,7 @@ class PolykeyAgent {
892
856
*/
893
857
public async stop ( ) {
894
858
this . logger . info ( `Stopping ${ this . constructor . name } ` ) ;
895
- this . events . removeAllListeners ( ) ;
859
+ this . certManager . removeEventListener ( keysEvents . EventsCertManagerCertChange . name , handleCertChange ) ;
896
860
await this . status . beginStop ( { pid : process . pid } ) ;
897
861
await this . taskManager . stopProcessing ( ) ;
898
862
await this . taskManager . stopTasks ( ) ;
0 commit comments