Commit graph

1419 commits

Author SHA1 Message Date
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
mmuller
d09bd89629 Add config parameters to point at us to use cloud-dns staging
Add cloudDns.{rootUrl, servicePath} to allow us to point an environment at the
Cloud DNS staging API for testing.  Make sandbox and alpha point to staging.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=170340859
2017-10-04 16:16:45 -04:00
larryruili
d4ab6fe90b Update activity reports to comply with agreement changes
This removes the ramp-up and pre-ramp-up registrar fields, and lists 'CZDS' as
the zfa-passwords field, in accordance to the registry agreement changes listed
on the associated bug.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=170337426
2017-10-04 16:16:45 -04:00
mcilwain
c69b409b30 Add java8 runtime option to production appengine-web.xml files
It occurs to me that we can't have this setting different between sandbox
and production, otherwise we can end up with a situation where we push code
that works on sandbox but then fails only when it is pushed to production.
Sandbox and production need to always be set up similarly for this reason.

We'll just have to pay a greater amount of attention to the release process
next week than normal, and continue playing around in alpha for the mean
time with a fully Java 8 build.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=170197703
2017-10-04 16:16:45 -04:00
nickfelt
2702c3a7f3 Fix code to always set HistoryEntry modification time using txn time
Since HistoryEntry always represents a read-only log of mutation to a core resource, that mutation should always happen in a transaction, and the HistoryEntry should be saved in that transaction.  As such, it's always more accurate to use ofy().getTransactionTime() for the modificationTime of the HistoryEntry rather than just DateTime.now(UTC).

In addition, having these be the exact same timestamp makes it possible to align HistoryEntries with commit log manifests using modificationTime = transactionTime, which is useful for recovery and analysis purposes.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=170136957
2017-10-04 16:16:45 -04:00
jianglai
ceadfea11f Remove @Inject annotation in StackDriverWriter
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=170111976
2017-10-04 16:16:45 -04:00
mountford
c13c2f403a Add RDAP support for deleted nameservers and filtering by registrar
This CL adds the functionality for nameserver searches. Future CLs will handle domains and entities.

Deleted items can only be seen by admins, and by registrars viewing their own deleted items.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=170106014
2017-10-04 16:16:45 -04:00
mmuller
0c8b5bc8bf Build DNS changes with HashMap instead of Builder
The existing CloudDnsWriter code uses ImmutableMap.Builder to construct the
map of DNS records to update.  This has been seen to fail on alpha, presumably
in a cases where host records and domain records produce duplicate updates for
a host.

Convert the Builder to a HashMap, allowing us to safely overwrite existing
records in the case of duplicates.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=170103421
2017-10-04 16:16:45 -04:00
mcilwain
8908686f23 Add java8 runtime option to all non-production appengine-web*.xml files
Java 8 is go!

https://cloudplatform.googleblog.com/2017/09/Java-8-on-App-Engine-Standard-environment-is-now-generally-available.html

We will add this option to the production files next week.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=170101056
2017-10-04 16:16:45 -04:00
nickfelt
498f390e54 Make ICANN reporting URLs default to real icann.org URLs
No reason for these not to work out of the box, right?  The default-config.yaml already has a couple other real icann.org URLs for RDE testing and the TMCH CRL.  This way Nomulus users don't have to worry about changing this setting (since other than testing it's hard to imagine what other value would be used; this is literally ICANN reporting so it always goes to ICANN).

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=170093954
2017-10-04 16:16:45 -04:00
shikhman
f27dd70c9e Automated g4 rollback of changelist 169922096.
*** Reason for rollback ***

Rolling back to fix []
*** Original change description ***

Remove @Inject annotation in StackDriverWriter

StackDriverWriter is provided by java.google.registry.monitoring.whitebox.StackdriverModule. The @Inject annotation in its constructor is not used. It also uses outdated named binding like @Named(stackdriverGcpProject) which causes confusion because that name is not provided anywhere in the code.

***

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169931047
2017-10-04 16:16:45 -04:00
nickfelt
3ad21e3834 Fix RDE import pending transfer handling
Mostly based on the original PR, but with some tweaking by nfelt@, in particular to add some support for autorenew grace period subsumption.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169922894
2017-10-04 16:16:45 -04:00
jianglai
2814561e92 Remove @Inject annotation in StackDriverWriter
StackDriverWriter is provided by java.google.registry.monitoring.whitebox.StackdriverModule. The @Inject annotation in its constructor is not used. It also uses outdated named binding like @Named(stackdriverGcpProject) which causes confusion because that name is not provided anywhere in the code.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169922096
2017-10-04 16:16:45 -04:00
jianglai
af570dcafe Remove schema-foss.txt
There are no needs to maintain two versions of the schema gold file now that we do not have any proprietary entities that are not supposed to be exposed in the foss build.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169905583
2017-10-04 16:16:45 -04:00
mcilwain
8bd9b35dfd Link domain to subordinate hosts on RDE import
Based on the original pull request below with some modifications for code drift
over time (including adding handling/testing for the case where superordinate
domains are in pending delete, and thus can't have hosts linked to them).

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169698157
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
jianglai
e0f432aafb Remote extra newline between build badge and the logo
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169454688
2017-10-04 16:16:45 -04:00
larryruili
aa9e617698 Finalize local variable to fix kokoro
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169412065
2017-10-04 16:16:44 -04:00
jianglai
2a3241903c Fix malformed moe directive
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169401537
2017-10-04 16:16:44 -04:00
larryruili
3d5a6b808c Change loadActiveApplicationsByDomainName to non-transactional
We can easily end up enlisting too many entity groups (separate
DomainApplications) in a TransactionalFlow when loading all applications
tracked by the DomainApplicationIndex. This makes the load operation
transactionless, to avoid overenlisting.

Potential problems:
1. We fail to prevent landrush applications, if a single sunrise application
exists. This is likely fine, except for a brief moment in Sunrush when a
sunrise application is made immediately prior to a landrush application. The
result is we accept an invalid application- which can be mediated manually.

2. We fail to prevent a domain create for a domain with an open application.
This is a little more sinister, but also unlikely unless someone submits an
application immediately before someone tries to create the same domain (sans
application?)

3. We return an invalid DomainCheck response (instead of 'pending allocation').
Not the worst outcome.

4. We reduce the AuctionStatusCommand and GetApplicationIdsCommand to
eventual consistency. Since they're internal tools, that's not too big a deal.

A better solution:
DomainApplications really should just be normalized under a virtualEntityGroup
by fullyQualifiedDomainName, or a hash-bucket like EppResources are. The
DomainApplication -> DomainBase -> EppResource hierarchy seems to be purely for
code reuse, at the cost of Datastore consistency. This would, however, require
quite some refactoring, and a custom resave operation across all
DomainApplications.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169395586
2017-10-04 16:16:44 -04:00
jianglai
9134e4407c Add newline between build badge and Nomulus logo
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169394785
2017-10-04 16:16:44 -04:00
jakubvrana
589b36cbe0 Forbid autoescape="deprecated- instead of requiring autoescape="strict".
autoescape="strict" is the default so there's no need to require it.

Tested:
    TAP found no affected targets
    []

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169387534
2017-10-04 16:16:44 -04:00
jianglai
920d46784a Fix link to build status
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169393008
2017-09-20 10:51:26 -04:00
jianglai
ee63e1af97 Fix schema.txt
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169299101
2017-09-20 10:27:17 -04:00
jianglai
0e26f21cea Add kokoro build badge to README.md
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169282203
2017-09-20 10:27:17 -04:00
larryruili
578673141c Migrate to new Sheets v4 api
This moves us from the oudated google/data XML api to the OnePlatform REST/JSON api, finally silencing the deprecation warnings we've been seeing.

The synchronization algorithm diffs the spreadsheet's current values with its internally sourced values, adding the row to a batch update request if there's a discrepancy. Additional internal data are added as an append operation to the end of the sheet, and any extraneous spreadsheet data is cleared from the spreadsheet.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169273590
2017-09-20 10:27:17 -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
mountford
0994ce76c7 Add script to convert datastore-indexes.xml to index.yaml
The gcloud datastore cleanup-indexes command takes its input in index.yaml form instead of datastore-indexes.yaml form. This simple translation script allows us to generate one from the other.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169260811
2017-09-20 10:27:17 -04:00
mountford
f34d4b6bbb Resolve RDAP TODO without action
There was a TODO to consider making RDAP queries look up domains by foreign key rather than directly to the domain itself. But since the TLD is a possible search filter, it makes more sense to stick with direct lookup, so we can take advantage of the index on TLD.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169240318
2017-09-20 10:27:17 -04:00
jianglai
0de2b06621 Fix foss build
When the domain-contact-postalInfos-footer was self-closed, the resulting contact-postalInfo element improperly included the following hidden input tag. Now that the tag is properly closed, the number of elements in contact-postalInfo should be reduced by 1 (the currently expected numbers are wrong and supposedly were there to have the tests pass).

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=169096690
2017-09-20 10:27:17 -04:00
mountford
1bb655267c Add RDAP warning when domain searches by nameserver may be incomplete
When searching for domains by nameserver name or IP address, we fetch the matching nameserver keys, then search for domains by those keys. We limit the number of nameserver keys returned, to avoid arbitrarily large domain queries. This CL adds a warning to the RDAP response if we retrieved the maximum number of nameservers. This may indicate that we have not found all the domains.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168885124
2017-09-20 10:27:17 -04:00
mcilwain
7dc1940cdb Move ResaveAllEppResources mapreduce from tools service to backend
It makes sense for all mapreduces to run in backend, especially onces
that are scheduled regularly to run in cron like this one now. We don't
have many instances configured for the tools service anymore on some
of our environments, so backend is the friendliest place for a mapreduce
to run.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168882122
2017-09-20 10:27:17 -04:00
guyben
3cc44259da Use different locks for thin and full rde reports
The lock is used to prevent dual writing of the same output file, and to
prevent us from generating the same data twice (if RdeStaging was run twice).

However, at times when we're creating both RDE and BRDA reports - we use the
same lock for both even though they write to different files and create
different reports.

This causes one of the two to almost always fail (when both are created, which
is once a week I think) delaying that report by several hours.

Note that the "prefix" part of the filenames has the mode in it, so different
modes will not have the same files.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168882007
2017-09-20 10:27:17 -04:00
guyben
892424b148 Check if lock owner is finished on lock acquisition
Sometimes requests "die" suddenly, without going through catch/finally blocks.
If this happens, any lock they own will remain locked until it times out (which
can take hours in some cases).

This cl implicitly unlocks any lock if the owner of the lock isn't running
anymore.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168880938
2017-09-20 10:27:17 -04:00
guyben
d7214b58fc Re-enable DeleteOldCommitLogs cron job
Also adds a "resave all epp" cron job that's needed for the delete to work correctly.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168879965
2017-09-20 10:27:17 -04:00
mountford
80ff106e4c Prohibit some RDAP domain and nameserver lookups by nameserver name
We had been allowing lookups by nameserver name using a wildcard and suffix if the suffix was a domain name. That's ok if the domain name is one we manage, but doesn't work efficiently otherwise. A lookup of ns*.zombo.com would require us to search for all nameservers beginning with ns (which could be almost all of them), then loop through until we found those ending with .zombo.com. So we are going to prohibit suffixes after the TLD unless the suffix is an in-bailiwick domain.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168835732
2017-09-20 10:27:17 -04:00
mcilwain
3a9d7f9b70 Add cloneProjectedInTime() to ResaveAllEppResources mapreduce
We're planning on adding a cronjob to run this mapreduce monthly, so
we may as well also project the resources being re-saved to the present
time so as to handle pending transfers, grace periods, and such. This will
make the BigQuery exports more useful.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168831056
2017-09-20 10:27:17 -04:00
jakubvrana
04a61794e0 Fix closing and self-closing tags in templates
Void tags (e.g. <img>) couldn't have a closing tag (e.g. </img> is invalid). Non-void tags (e.g. <div>) couldn't be self closing (e.g. <div/> is invalid) and must be closed explicitly (e.g. with </div>). This CL fixes the tags which also prepares the templates for stricthtml which enforces it.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168829028
2017-09-20 10:27:17 -04:00
jianglai
ccb0bf5af0 Use real Preconditions class, not old clone from unrelated package.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168720192
2017-09-20 10:27:17 -04:00
mcilwain
d73ef66352 Remove temporary handling of invalid billing events
The bad prober domain data has since been deleted, so we no longer need
to handle the case where these Keys point to entities that don't exist.

This mostly reverses []

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168687701
2017-09-20 10:27:17 -04:00
larryruili
efd7010f9d Add resave command for all HistoryEntries
This pattern will mainly be used for data migrations, i.e. updating all
HistoryEntries' DomainTransactionRecords to the new schema.

TESTED=Ran in alpha, the underlying data dropped non-Objectify fields as
expected.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168684356
2017-09-20 10:27:17 -04:00
mmuller
07e5741cbb Implement compare_db_backups "main"
Implement toplevel class that reads in two database backups and displays
diffs.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168592124
2017-09-20 10:27:17 -04:00
mcilwain
51298aeabb Extract multiple commit prevention in DNS writers into a base class
This still retains the DnsWriter interface itself for better integration
with Dagger and to preserve the option of having a DNS writer that does
not have this requirement (e.g. because it is idempotent).

This also makes the commit check thread-safe, which is a nice-to-have.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168451114
2017-09-20 10:27:17 -04:00
mountford
f6e0d5fa0c Fix typo
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168437857
2017-09-20 10:27:17 -04:00
jianglai
c3f2002e6c Set up github CI kokoro job
TESTED=Set up the job in kokoro-qa:

[]

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=166875896
2017-09-20 10:27:17 -04:00
jianglai
a0014f350e Change closure checksum for foss build
Tested:ran dr-foss-test and passed all tests.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168412524
2017-09-12 15:52:02 -04:00
mountford
5b444d93fb Add administrator privileges to RDAP
RDAP filters some contact data when the request is not authenticated as coming from a user associated with the registrar owning the contact. This CL adds an exception for admin users, which for the App Engine Users API are defined as App Engine project viewers. This means that the registry team will always get all information when logged in. This will also be useful when building tools that use RDAP output.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168293820
2017-09-12 15:52:02 -04:00
jijiang
211d89695a Migrate from old *Verb* classes to new *SubjectBuilder* classes
This migration does not change any behavior.

More information: []

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168248439
2017-09-12 15:51:58 -04:00
mountford
985d14b51f Add more tests for RDAP contact data permissioning
This CL adds extra tests to make sure that contact data is hidden for RDAP domain and contact requests when not logged in as the proper registrar.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168234733
2017-09-12 15:51:50 -04:00
bbilbo
4b83615513 Add support for a domain delete superuser EPP extension
Allow superusers to change the grace period and allow
superusers to change the pending delete length.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168028545
2017-09-12 15:51:50 -04:00