Commit graph

162 commits

Author SHA1 Message Date
jianglai
fe1b2778ec Update bazel version to 0.14.1
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=200047783
2018-06-18 17:54:43 -04:00
jianglai
6ca28386cd Store encrypted file in Base64 encoding
It is better to store it ASCII armored so that it can be easily diffed to see
if a file has changed

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=200045488
2018-06-18 17:53:11 -04:00
guyben
5aeee19699 Send out Lordn during start-date sunrise
Also prevents signed marks from being used in non-sunrise TldStates.

Currently, we send out a Lordn update only when there's a ClaimNotice, or if
we're in end-date sunrise.

But EPPs can contain a SignedMark instead of a ClaimsNotice for trademarked
domains - in which case we aren't sending out Lordn update. This also applies
to start-date sunrises.

We also change the SignedMark behavior for superusers. Currently, if a
mismatched signed mark is given as superuser, we accept it. That causes
problems when we want to send the Lordn update.

Instead - we no longer allow superusers to give a mismatched SignedMark (just
as we don't allow users to give a bad ClaimNotice). A super user can still
create a domain WITHOUT a signed mark - but if one is provided, it must match.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=199783411
2018-06-18 17:45:44 -04:00
jianglai
27fce55654 Restrict contact info commands to owning registrars
Superuser can also execute contact info commands. AuthInfo is no longer checked in the input and always displayed in the output as the only ones who can get a response are the sponsoring registrar and super user.

Also corrected a Javadoc in which '@' should have been escaped (see https://reflectoring.io/howto-format-code-snippets-in-javadoc/)

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=199521153
2018-06-18 17:36:42 -04:00
guyben
e4f25c08e8 Improve the error when trying to delete the registrant contact
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=196708902
2018-05-17 21:52:35 -04:00
jianglai
297b8df6a1 Update bazel version to 0.13.0
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=195652269
2018-05-17 21:52:35 -04:00
jianglai
4d3065c7ab Update bazel version to 0.12.0
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=194136955
2018-05-05 23:25:00 -04:00
larryruili
f56355c9e8 Enforce anchor tenant domain create period
This verifies anchor tenant creates by registrars are for exactly 2 years, to simplify billing down the line (anchor tenants get 2 years of free domain creates).

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=193931858
2018-04-23 15:11:37 -04:00
jianglai
f289259101 Change UserPolicy to PUBLIC on WHOIS and EPP endpoints
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=193407195
2018-04-23 14:59:24 -04:00
jianglai
d036d72dda Add instruction on how to set "App Engine Admin" permission
The proxy service account needs a role that is considered "App Engine Admin" for OAuth to work.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=193049418
2018-04-23 14:45:21 -04:00
jianglai
7f86f2c1fb Correct a minor issue to proxy setup doc
gsutil config does not have to be run more than once.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=193046087
2018-04-23 14:43:48 -04:00
jianglai
53820108fe Correct proxy setup doc
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=193045619
2018-04-23 14:42:16 -04:00
jianglai
001f819616 Create certificate bucket before running terraform
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=193044934
2018-04-23 14:40:42 -04:00
jianglai
e5c0a85b3b Update proxy setup doc
Include information on how to upload an encrypted key/cert combo to GCS

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=191782955
2018-04-10 16:41:45 -04:00
jianglai
6dec95b980 Use terraform to config GCP proxy setup
With terraform (https://terraform.io) we can convert most of the infrastructure setup into code. This simplifies setting up a new proxy as well as providing reproducibility in the setup, eliminating human errors as much as possible.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190634711
2018-04-02 16:46:01 -04:00
guyben
b5ae37c5cc Return more informative errors when signed mark is invalid at this time
A "mark" tells us that the holder owns the trademark for a given domain name. It is signed for authentication.

If the signature's certificate is either "not yet valid" or "expired", we return explicit errors to that effect.

But in addition to the signature's certificate, the mark itself might not be valid yet or already expired. Right now if that happens - we return an error saying "the mark doesn't match the domain name".

That is wrong - as the mark can match the domain name, just be expired. Returning "the mark doesn't match the domain name" in that case is misleading.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190069976
2018-04-02 16:29:24 -04:00
jianglai
70e9df7435 Add instructions on how to set up the GCP proxy
A step by step instruction is provided to set up the proxy. Also made some changes to the README file as both DNS and proxy are no longer "known issues"

A better approach to setting up the proxy manually is to codify the infrastructure with https://terraform.io. I will work on this next.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=189648593
2018-03-19 18:51:57 -04:00
jianglai
bc03a01388 Remove references to Eclipse
We are no longer using Eclipse internally and therefore stopped maintaining
stuff related to it. We cannot guarantee that any pertinent information remains correct
and relevant in the future.

Users are advised to use IntelliJ (Community Edition is fine) with Bazel plugin
if they want IDE support.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=189586127
2018-03-19 18:45:41 -04:00
jianglai
c025b728a3 Update bazel version to 0.11.1
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=189226075
2018-03-19 18:35:44 -04:00
mountford
0229aefe09 Fix cut-and-paste error in RDAP documentation
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=189191122
2018-03-19 18:31:15 -04:00
jianglai
740b9bbf7d Update Bazel version to 0.11.0
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=187057788
2018-03-06 19:02:18 -05:00
jianglai
ff221fba96 Validate individual fee types
Currently we validate the fee extension by summing up all fees present in the extension and comparing it against the total fee to be charged. While this works in most cases, we'd like the ability to individually validate each fee. This is especially useful during EAP when two fees are charged, a regular "create" fee that would also be amount we charge during renewal, and a one time "EAP" fee.

Because we can only distinguish fees by their descriptions, we try to match the description to the format string of the fee type enums. We also only require individual fee matches when we are charging more than one type of fees, which makes the change compatible with most existing use cases where only one fees is charged and the description field is ignored in the extension.

We expect the workflow to be that a registrar sends a domain check, and we reply with exactly what fees we are expecting, and then it will use the descriptions in the response to send us a domain create with the correct fees.

Note that we aggregate fees within the same FeeType together. Normally there will only be one fee per type, but in case of custom logic there could be more than one fee for the same type. There is no way to distinguish them as they both use the same description. So it is simpler to just aggregate them.

This CL also includes some reformatting that conforms to google-java-format output.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=186530316
2018-03-06 18:48:39 -05:00
jianglai
1965c0a0aa Update bazel version to 0.10.1
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=186456613
2018-03-06 18:45:37 -05:00
guyben
b0cbc0f60d Add the START_DATE_SUNRISE phase
The START_DATE_SUNRISE phase allows registration of domains only with a signed mark. In all other respects - it is identical to the GENERAL_AVAILABILITY phase.

Note that Anchor Tenants bypass all checks, and are hence able to register domains without a signed mark.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=185534793
2018-02-20 15:45:27 -05:00
jianglai
e5b000638b Update FOSS bazel version to 0.10.0
Also changed version checker tuple from strings to ints, so that 0.10.0 is larger than 0.4.2.

I think we should just get rid of the version checker all together. It is still requirement 0.4.2 as minimal bazel version, which mostly like will not work with Nomulus at this point.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=184536748
2018-02-05 23:54:49 -05:00
mcilwain
5726f1dc4e Add base AllocationToken validation logic for domain checks
Next up is adding custom logic so that the results of these checks can be
more meaningful.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=181660956
2018-01-19 14:32:48 -05:00
mountford
716ba726fc Add RDAP search support for only contacts or only registrars
By default, RDAP entity searches return both contacts and registrars. This CL
adds a new query parameter to request only one or the other. Among other
benefits, this will allow a future CL to permit wildcard searches that return
all registrars.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=181605990
2018-01-19 14:29:54 -05:00
mcilwain
e07d011bc6 Add basic AllocationToken validation/redemption for domain creates
The next step is to add them for domain checks as well (which is simpler
because it doesn't involve validation).

This requires the addition of a TrimWhitespaceAdapter for XML JAXB objects,
which will prove useful for other @XmlValue attributes in the future.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=181526726
2018-01-19 14:28:26 -05:00
mcilwain
5f62947691 Add and wire up the AllocationTokenExtension XML class
The extension itself isn't used for anything yet; allocation tokens can be
passed for domain creates and checks but are ignored if present. This will
be changed in a subsequent CL that adds AllocationToken entities and related
logic. Usage of this extension in any other EPP flow will throw an
UnsupportedExtensionException.

The relevant spec is https://tools.ietf.org/html/draft-gould-allocation-token-04

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=181343188
2018-01-19 14:23:59 -05:00
jianglai
50998136b1 Update bazel version to 0.9.0
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=179686177
2017-12-27 11:31:10 -05:00
mountford
68468b36b5 Document next page links in RDAP search
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=179429371
2017-12-27 11:12:09 -05:00
jianglai
d736f7f08d Upgrade to Bazel 0.8.1
TESTED=passed FOSS test (with the same caveat about failing GPG related tests
on Debian).

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=178031429
2017-12-13 12:43:45 -05:00
mcilwain
ebfa27b3ad Require fee extension when registering domain in EAP
Failing to use the fee extension during EAP can result in charges to registrars
that are radically different than what they may have been expecting.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=177597883
2017-12-01 22:14:06 -05:00
jianglai
25b49c57cd Update to bazel 0.8.0
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=177040918
2017-12-01 22:14:06 -05:00
mountford
8cd3979385 Add formatOutput parameter to RDAP documentation
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=176532296
2017-11-21 18:53:20 -05:00
jianglai
0796a0ff1c Check the host is under registry suffix instead of public suffix
Guava now has support to distinguish a registry suffix from a public suffix. Since we are only interested in registrable domains, registry suffix is the proper thing to check.

See:

692446a303/guava/src/com/google/common/net/InternetDomainName.java

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=176126916
2017-11-21 18:41:06 -05:00
jianglai
28417b7599 Update generate_workspace link
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=175734112
2017-11-21 18:28:43 -05:00
mountford
c126c05810 Link RDAP syntax page to Github RDAP user's guide
It has been decided that we will link the RDAP help pages, not to local HTML copies, but to the Github documentation.

A typo and word order error in the Github version of the user's guide are also
corrected.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=174350665
2017-11-07 17:37:35 -05:00
mountford
ab04bce23d Change nonfunctional markdown-style anchors to HTML
The RDAP help page has anchors, so that we can then change the internal RDAP help topics to point to specific parts of the documentation. Unfortunately, GitHub does not appear to support the style of anchor we were using. See the current situation:

https://github.com/google/nomulus/blob/master/docs/rdap.md

Experimentation in GitHub confirms that switching to embedded HTML <a> tags solves the problem, and Critique preview shows it working correctly as well, with automatically generated table of contents at the left. If there's another way to fix this problem, I'm happy to try it.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=173405974
2017-11-07 16:52:32 -05:00
jianglai
7bc2d6badd Update to bazel 0.7.0
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=173276422
2017-10-24 16:53:47 -04:00
mountford
f89ad27e17 Add markdown documentation for RDAP
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=172776631
2017-10-24 16:53:47 -04:00
mcilwain
e62e1af863 Rename ClaimsCheckFlow to DomainClaimsCheckFlow
This way it is consistent with the rest of our domain-related flows, which
consistently use the Domain* prefix. Note that claims checks are just a
special case of domain checks anyway, which run under DomainCheckFlow. This
will make dashboards looking at domain commands "just work" with a regexp of
Domain.*, without having to special-case in ClaimsCheck.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=172608964
2017-10-24 16:53:47 -04:00
jianglai
07240162a2 Update working bazel version to 0.6.1
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=172384077
2017-10-24 16:53:47 -04:00
bbilbo
14ccd2b8f1 Undo incorrect changes regarding the registrar console homepage
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=170854904
2017-10-04 16:16:45 -04:00
guyben
01591ff88e Clarify diff display of MutatingCommand
Tools inheriting from MutatingCommand print out the change they are going to
make and then ask the user to confirm that this is indeed what they wanted to
do.

The change is outputted as a list of updated values in the form

key -> [oldValue, newValue]

e.g.

dnsPaused -> [true, false]

This CL will change the output to be clearer:

key: oldValue -> newValue

e.g.

dnsPaused: true -> false

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=170853745
2017-10-04 16:16:45 -04:00
mcilwain
cb6bf91c8a Update install instructions to reflect upgrade to Java 8
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=170703827
2017-10-04 16:16:45 -04:00
bbilbo
7aa5629517 Allow domain transfers with 0 period and in auto-renew grace period
Normally, if a domain is in the auto-renew grace period, a transfer will cancel the auto-renew billing event. In the event of a transfer with no change to registration end date, the auto-renew billing event should not be cancelled and the gaining registrar should not be charged for the transfer.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=170576726
2017-10-04 16:16:45 -04:00
mcilwain
1c4e79f99e Don't allow non-active registrars to create domains or applications
Specifically, this prevents suspended registrars from creating domains or applications. Pending registrars already can't perform these actions because they get an error message when attempting to log in.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=170481338
2017-10-04 16:16:45 -04:00
mcilwain
c64e9fe788 Add more explanation to architecture document
This also renames the document to clarify its scope as being all of
Google Cloud Platform, not just App Engine.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169543846
2017-10-04 16:16:45 -04:00
nickfelt
67116c5fa1 Remove long-dead LogsExportCursor and PersistedRangeLong
LogsExportCursor was only used by ExportLogsTaskServlet, which we removed a long time ago.  It's just dead code.  The PersistedRangeLong type was only written for use by LogsExportCursor, and since it hasn't picked up new users in 3+ years I don't think we need to keep it around.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169264994
2017-09-20 10:27:17 -04:00