google-nomulus/java/google/registry/flows
nickfelt a4091594d0 Add new JSON logging to FlowRunner for EPP activity reporting
We've been using the very fragile newline-delimited legacy logging
statement in FlowRunner for ICANN reporting for a long time.  While
this is bad in a few ways, the worst is that the parsing of this
logging statement is extremely fragile (e.g. adding/removing fields
can easily break the parsing).  This is in fact part of what broke the
ExportLogsServlet parsing last fall ([] and forced us to
recover by manually parsing the log statement (and its XML) in
BigQuery.  It also broke again in [] where we were relying
on matching the logging classname, since matching on 'EPP Command'
was considered insufficiently narrow.

This introduces a new JSON-format logging statement to FlowRunner
that fixes both of these problems:

 1) it replaces the newline-delimited "format" with a JSON-based
    format, so that we can add new fields much more easily and
    reliably support logging more structured data

 2) it replaces the short 'EPP Command' signature with a much more
    targeted 'EPP-REPORTING-LOG-SIGNATURE' signature so that we can
    use that alone for matching, rather than relying on the class
    name in the log message

What this doesn't fix is the fact that we still need to parse the
XML in BigQuery; we should fix this by logging the parts of the XML
that ICANN reporting needs explicitly, but that'll be a subsequent
change, since while the existing approach is gross, it's actually
much less fragile than just matching the log statement itself.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=125902976
2016-06-27 16:45:55 -04:00
..
async Delete the useless MapreduceAction interface 2016-05-18 13:09:40 -04:00
contact Dagger, meet Flows. Flows, meet Dagger. 2016-06-27 16:26:29 -04:00
domain Dagger, meet Flows. Flows, meet Dagger. 2016-06-27 16:26:29 -04:00
host Dagger, meet Flows. Flows, meet Dagger. 2016-06-27 16:26:29 -04:00
picker Simplify an exception's constructor. 2016-06-27 16:12:00 -04:00
poll Dagger, meet Flows. Flows, meet Dagger. 2016-06-27 16:26:29 -04:00
session Dagger, meet Flows. Flows, meet Dagger. 2016-06-27 16:26:29 -04:00
soy Turn CheckApiAction into a standard-ish epp endpoint 2016-06-27 16:22:12 -04:00
BUILD Fix soy open source build error 2016-06-27 16:33:28 -04:00
CheckApiAction.java Turn CheckApiAction into a standard-ish epp endpoint 2016-06-27 16:22:12 -04:00
EppConsoleAction.java Break SessionSource out of SessionMetadata and rename it EppRequestSource. 2016-06-27 16:19:21 -04:00
EppController.java Dagger, meet Flows. Flows, meet Dagger. 2016-06-27 16:26:29 -04:00
EppException.java Simplify an exception's constructor. 2016-06-27 16:12:00 -04:00
EppRequestHandler.java Turn CheckApiAction into a standard-ish epp endpoint 2016-06-27 16:22:12 -04:00
EppRequestSource.java Break SessionSource out of SessionMetadata and rename it EppRequestSource. 2016-06-27 16:19:21 -04:00
EppTlsAction.java Break SessionSource out of SessionMetadata and rename it EppRequestSource. 2016-06-27 16:19:21 -04:00
EppToolAction.java Break SessionSource out of SessionMetadata and rename it EppRequestSource. 2016-06-27 16:19:21 -04:00
EppXmlTransformer.java Fix generics in EppXmlTransformer.unmarshal to not be only on the return type. 2016-06-27 15:55:03 -04:00
Flow.java Inject two fields into flows. 2016-06-27 16:27:57 -04:00
FlowComponent.java Inject flows with a nested ternary rather than a map 2016-06-27 16:29:19 -04:00
FlowModule.java Inject flows with a nested ternary rather than a map 2016-06-27 16:29:19 -04:00
FlowRunner.java Add new JSON logging to FlowRunner for EPP activity reporting 2016-06-27 16:45:55 -04:00
FlowScope.java Dagger, meet Flows. Flows, meet Dagger. 2016-06-27 16:26:29 -04:00
GaeUserCredentials.java Refactor SessionMetadata and TransportCredentials toString() methods 2016-06-27 16:43:12 -04:00
HttpSessionMetadata.java Refactor SessionMetadata and TransportCredentials toString() methods 2016-06-27 16:43:12 -04:00
LoggedInFlow.java Decouple superuser from SessionMetadata 2016-06-27 16:17:57 -04:00
OwnedResourceMutateFlow.java Decouple superuser from SessionMetadata 2016-06-27 16:17:57 -04:00
OwnedResourceMutatePendingTransferFlow.java Rename Java packages to use the .google TLD 2016-05-13 20:04:42 -04:00
PasswordOnlyTransportCredentials.java Refactor SessionMetadata and TransportCredentials toString() methods 2016-06-27 16:43:12 -04:00
ResourceAsyncDeleteFlow.java Remove nearly all uses of ReferenceUnion 2016-05-16 16:36:25 -04:00
ResourceCheckFlow.java Rename Response in the epp model to EppResponse 2016-06-14 16:30:26 -04:00
ResourceCreateFlow.java Rename Java packages to use the .google TLD 2016-05-13 20:04:42 -04:00
ResourceCreateOrMutateFlow.java Inject two fields into flows. 2016-06-27 16:27:57 -04:00
ResourceDeleteFlow.java Rename Response in the epp model to EppResponse 2016-06-14 16:30:26 -04:00
ResourceFlow.java Decouple superuser from SessionMetadata 2016-06-27 16:17:57 -04:00
ResourceFlowUtils.java Make javadoc <p> style guide compliant 2016-05-18 13:09:01 -04:00
ResourceInfoFlow.java Rename Response in the epp model to EppResponse 2016-06-14 16:30:26 -04:00
ResourceMutateFlow.java Rename Java packages to use the .google TLD 2016-05-13 20:04:42 -04:00
ResourceMutatePendingTransferFlow.java Rename Java packages to use the .google TLD 2016-05-13 20:04:42 -04:00
ResourceQueryFlow.java Rename Java packages to use the .google TLD 2016-05-13 20:04:42 -04:00
ResourceSyncDeleteFlow.java Rename Java packages to use the .google TLD 2016-05-13 20:04:42 -04:00
ResourceTransferApproveFlow.java Rename Java packages to use the .google TLD 2016-05-13 20:04:42 -04:00
ResourceTransferCancelFlow.java Rename Java packages to use the .google TLD 2016-05-13 20:04:42 -04:00
ResourceTransferFlow.java Rename Java packages to use the .google TLD 2016-05-13 20:04:42 -04:00
ResourceTransferQueryFlow.java Rename Java packages to use the .google TLD 2016-05-13 20:04:42 -04:00
ResourceTransferRejectFlow.java Rename Java packages to use the .google TLD 2016-05-13 20:04:42 -04:00
ResourceTransferRequestFlow.java Rename Response in the epp model to EppResponse 2016-06-14 16:30:26 -04:00
ResourceUpdateFlow.java Decouple superuser from SessionMetadata 2016-06-27 16:17:57 -04:00
SessionMetadata.java Refactor SessionMetadata and TransportCredentials toString() methods 2016-06-27 16:43:12 -04:00
SingleResourceFlow.java Rename Java packages to use the .google TLD 2016-05-13 20:04:42 -04:00
StatelessRequestSessionMetadata.java Refactor SessionMetadata and TransportCredentials toString() methods 2016-06-27 16:43:12 -04:00
TlsCredentials.java Refactor SessionMetadata and TransportCredentials toString() methods 2016-06-27 16:43:12 -04:00
TransactionalFlow.java Make javadoc <p> style guide compliant 2016-05-18 13:09:01 -04:00
TransportCredentials.java Decouple SessionMetadata and TransportCredentials 2016-06-27 16:14:57 -04:00