Commit graph

288 commits

Author SHA1 Message Date
gbrodman
2a18e705a2 Add generic XML syntax testing to a flow test
Adding it to one test is sufficient because we use the same loading logic across all flows.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=239506003
2019-03-21 14:58:31 -04:00
gbrodman
6e01d400cd Test UnknownCurrencyEppException in the flow tests
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=239279335
2019-03-20 14:25:28 -04:00
jianglai
50e88acddb Update to bazel 0.23.1
Also updated closure rules to GitHub master, as the current release version
(0.80.0) has compatibility issues with bazel 0.23.1.

See: https://github.com/bazelbuild/rules_closure/issues/333

Note that on Debian Testing (Buster) there's currently an issue with OpenSSL that can be temporarily fixed by setting the environment variable OPENSSL_CONF to /etc/ssl.

See: https://fransdejonge.com/2018/12/run-enpass-on-debian-buster-testing/

Lastly, migrated from the --local_resources flag (to be deprecated) to --local_ram_resources and --local_cpu_resources.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=237527805
2019-03-08 18:41:16 -05:00
guyben
847795d58d Remove the web console EPP endpoint
This removes the "create Domain/Host/Contact" forms that were supposed to be used instead of regular EPPs for CC-TLD that wanted to support it.

We're removing it because we don't use it and want to reduce unneeded code for the registry 3.0 migration.

Also, this is a security risk, as it allowed to do "billable actions" (creating a new domain for example) with the only authentication being access to the registrar's G Suite account.

This bypassed the certificate, IP whitelist, and EPP password, which is bad.

PUBLIC:
Remove the web console EPP endpoint

This removes the "create Domain/Host/Contact" forms that were supposed to be used instead of regular EPPs for CC-TLD that wanted to support it.

We're removing it because we don't use it and want to reduce unneeded code for the registry 3.0 migration.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=236244195
2019-03-05 14:20:42 -05:00
mcilwain
6a6c7e3b09 Explain SERVER_HOLD part of NAME_COLLISION reservations
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=232713573
2019-02-06 18:01:37 -05:00
mcilwain
5dedc1e889 Delete everything related to RDE import
This code was never finished or fully working anyway.  It would require
substantial reworking for the Registry 3.0 migration because it's closely tied
to the Datastore model and App Engine MapReduce framework, both of which will be
going away.  We can bring back some of these deleted test files as necessary
if/when we rewrite RDE import for the new schema.

On the plus side, in a relational database, RDE import will be much simpler.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=231265578
2019-01-28 16:16:36 -05:00
mmuller
87ab149049 Externalize premium/reserved list tests
Remove the GoogleInternal designator on the premium/reserved list tests, move
the lists themselves under the config/files directory, and fix all of the
surrounding infrastructure.

The lists do not get exported.  Only the "example.txt" list does, allowing the
test to function on the open source build.

TESTED:
  Verified that the gradle build works and that only the example.txt file is exported.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=229940659
2019-01-18 15:34:06 -05:00
jianglai
52212748ca Update documentation on nomulus tool authentication
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=229780750
2019-01-17 19:22:25 -05:00
mcilwain
580302898d Delete end-date sunrise, landrush, and sunrush phases
This also deletes the associated commands and domain application specific
entities.

We haven't used any of these TLD phases since early 2015 and have no
intent to do so in the future, so it makes sense to delete them now so we
don't have to carry them through the Registry 3.0 migration.

Note that, while there are data model changes, there should be no required
data migrations. The fields and entities being removed will simply remain
as orphans. I confirmed that the removed types (such as the SUNRUSH_ADD
GracePeriodType) are no longer used in production data, and left types
that are still used, e.g. BillingEvent.Flag.LANDRUSH or
HistoryEntry.Type.ALLOCATE.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=228752843
2019-01-10 16:23:35 -05:00
weiminyu
25f3d8544e Update Nomulus open source install guide
appcfg fails if version is not specified.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=227909394
2019-01-08 10:56:53 -05:00
jianglai
9e155f14c0 Add support to bazel 0.21.0
Also fixes the build.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=226493872
2018-12-21 15:55:08 -05:00
jianglai
e4733953d3 Update bazel version to 0.20.0
Also updated distroless base image to include the latest vulnerability fixes.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=223975505
2018-12-05 15:56:01 -05:00
mcilwain
11da64bee2 Deny non-active registrars access to non-free EPP commands
Registrars that are PENDING or SUSPENDED should not have access to
EPP commands that cost money, as in either case it's not likely we'd
actually be able to get payment from said registrar. For this reason
we already prevented access to the domain create flow for non-active
registrars. This commit extends that to other commands that cost
money, including renewals, restores, and transfer requests.

Note that implicit autorenews will still occur for suspended
registrars, as in our point-in-time data model there's no good way
to prevent them. So when a registrar is suspended for non-payment,
the game plan is to get all of their domains transferred out to a
registrar that will pay as soon as possible.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=223173677
2018-12-03 19:10:45 -05:00
guyben
5f283ebd09 Use AuthenticatedRegistrarAccessor in EppConsoleAction
EppConsoleAction still "manually" checks access by going over the
RegistrarContacts. We need it to use AuthenticatedRegistrarAccessor just like
every other part of the registrar console.

We still need to remove the (now unneeded) login EPP sent by the console, but that's left for a followup CL.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=222404208
2018-12-03 18:51:40 -05:00
jianglai
a0aeec6f2f Update bazel version to 0.19.2
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=222309479
2018-12-03 18:48:28 -05:00
jianglai
4a9b715020 Update bazel version to 0.17.2
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=215603517
2018-10-08 16:59:29 -04:00
jianglai
f4d392eed9 Update to bazel 0.17.1
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=213271889
2018-09-20 11:19:36 -04:00
jianglai
8d675a4b8c Remove checking of SNI headers
This is only useful when we used the [] proxy because the GFE requires SNI during handshake in order to request the client certificate. The GCP proxy does not need this (it always requests the client certificate). We do not need to check for its existence.

Also removed the checking of internal headers for ssl cert hash used only by the [] proxy.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=213059027
2018-09-14 21:34:44 -04:00
mcilwain
8ddbf88151 Remove the deprecated MISTAKEN_PREMIUM reservation type
It doesn't do anything that ALLOWED_IN_SUNRISE doesn't do, and there's no point
in having two separate types when we can simply keep track of the semantic
difference between the two by using different lists (as we have for .soy).

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=212997752
2018-09-14 21:28:23 -04:00
mcilwain
7b87ba41c7 Delete all Limited Release Program (LRP) code
We never used it and don't have any plans to use it going forward. All
conceivable parts of its functionality that we might use going forward have
already been subsumed into allocation tokens, which are a simpler way of
handling the same use case that are also standards-compliant.

Also gets rid of the hideous ANCHOR_ prefix on anchor tenant EPP authcodes
that was only ever necessary because of overloading the authcode for
anchor tenant creation. Going forward it'll be based on allocation tokens,
so there's no risk of conflicts.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=209418194
2018-08-20 14:28:16 -04:00
mcilwain
d2f849ac0f Add new reserved domain creation from allocation tokens mechanism
Note that this gets rid of anchor tenant codes in reserved lists (yay!), which
are no longer valid.  They have to come from allocation tokens now.

This removes support for LRP from domain application create flow (that's fine,
we never used it and I'm going to delete all of LRP later).  It also uses
allocation tokens from EPP authcodes as a fallback, for now, but that will be
removed later once we switch fully to the allocation token mechanism.

This doesn't yet allow registration of RESERVED_FOR_SPECIFIC_USE domains using
the allocation token extension; that will come in the next CL.  Ditto for
showing these reserved domains as available on domain checks when the allocation
token is specified.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=209019617
2018-08-20 14:22:06 -04:00
jianglai
7188d159a8 Update open source build to use bazel 0.16.0
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=208215944
2018-08-10 15:57:48 -04:00
jianglai
6cce3b7d6f Update bazel version to 0.15.0
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=204530546
2018-07-14 01:37:03 -04:00
mcilwain
6706b99828 Delete remnants of registrar-level credits
We never fully used this stuff but definitely no longer use it following our
recent billing refactor. It's confusing to retain all of these entities and
commands given that none of them are actually used by anything.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=201978094
2018-06-27 15:28:52 -04:00
jianglai
98d8d8886d Add documentation for AUTH_PUBLIC_OR_INTERNAL
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=200259762
2018-06-18 18:03:29 -04:00
mcilwain
5fdd7a15ca Delete unused queue delete-commits
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=200062584
2018-06-18 17:57:41 -04:00
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