1
0
mirror of https://github.com/google/nomulus synced 2026-05-25 17:20:32 +00:00

Compare commits

...

7 Commits

Author SHA1 Message Date
gbrodman
b77a219e19 Move domain-list search+download outside of loading bar (#2457)
This means that they'll stick around even while we're loading domains
from the server.

https://b.corp.google.com/issues/343213150
2024-06-06 20:35:20 +00:00
Pavlo Tkach
bd8e6354b5 Add new registrar screen to the console (#2469) 2024-06-07 00:21:53 +00:00
Weimin Yu
361094f537 BSA check in DomainCheckFlow should check TLD (#2472)
Should not block labels if the tld is not enrolled with BSA.
2024-06-06 19:30:36 +00:00
sarahcaseybot
d53177e44c Add domain creates to the load testing client (#2458)
* Add domain creates to the load testing client

* Update contact create
2024-06-06 17:30:12 +00:00
sarahcaseybot
e73f646e1f Add FeatureFlag table to the database (#2463)
* Add FeatureFlag table to the database

* Change status to hstore
2024-06-06 17:17:11 +00:00
Lai Jiang
1a5dfb0ac2 Upgrade schemacrawler (#2471) 2024-06-06 14:51:13 +00:00
Lai Jiang
49cb1875d1 Upgrade dependencies (#2468) 2024-06-05 15:50:42 +00:00
52 changed files with 1725 additions and 1022 deletions

View File

@@ -24,7 +24,7 @@ com.google.guava:failureaccess:1.0.2=compileClasspath,deploy_jar,runtimeClasspat
com.google.guava:guava-parent:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor
com.google.guava:guava:31.0.1-jre=checkstyle
com.google.guava:guava:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor
com.google.guava:guava:33.2.0-jre=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath
com.google.guava:guava:33.2.1-jre=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=checkstyle,compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath
com.google.inject:guice:5.1.0=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor
com.google.j2objc:j2objc-annotations:1.3=checkstyle

View File

@@ -30,6 +30,7 @@ import { DomainListComponent } from './domains/domainList.component';
import { HeaderComponent } from './header/header.component';
import { HomeComponent } from './home/home.component';
import { NavigationComponent } from './navigation/navigation.component';
import NewRegistrarComponent from './registrar/newRegistrar.component';
import { RegistrarDetailsComponent } from './registrar/registrarDetails.component';
import { RegistrarSelectorComponent } from './registrar/registrarSelector.component';
import { RegistrarComponent } from './registrar/registrarsTable.component';
@@ -63,6 +64,7 @@ import { TldsComponent } from './tlds/tlds.component';
HomeComponent,
LocationBackDirective,
NavigationComponent,
NewRegistrarComponent,
NotificationsComponent,
RegistrarComponent,
RegistrarDetailsComponent,

View File

@@ -1,18 +1,6 @@
<app-selected-registrar-wrapper>
<div class="console-domains">
<h1 class="mat-headline-4">Domains</h1>
@if (totalResults === 0) {
<div class="console-app__empty-domains">
<h1>
<mat-icon class="console-app__empty-domains-icon secondary-text"
>apps_outage</mat-icon
>
</h1>
<h1>No domains found</h1>
</div>
} @else if(isLoading) {
<mat-progress-bar mode="indeterminate"></mat-progress-bar>
} @else {
<a
mat-stroked-button
color="primary"
@@ -31,55 +19,75 @@
matInput
[(ngModel)]="searchTerm"
(ngModelChange)="sendInput()"
[disabled]="isLoading"
#input
/>
</mat-form-field>
<mat-table
[dataSource]="dataSource"
class="mat-elevation-z0"
class="console-app__domains-table"
>
<ng-container matColumnDef="domainName">
<mat-header-cell *matHeaderCellDef>Domain Name</mat-header-cell>
<mat-cell *matCellDef="let element">{{ element.domainName }}</mat-cell>
</ng-container>
@if (!isLoading && totalResults == 0) {
<div class="console-app__empty-domains">
<h1>
<mat-icon class="console-app__empty-domains-icon secondary-text"
>apps_outage</mat-icon
>
</h1>
<h1>No domains found</h1>
</div>
} @else {
<div class="console-app__domains-table-parent">
@if (isLoading) {
<div class="console-app__domains-spinner">
<mat-spinner />
</div>
}
<mat-table
[dataSource]="dataSource"
class="mat-elevation-z0"
class="console-app__domains-table"
>
<ng-container matColumnDef="domainName">
<mat-header-cell *matHeaderCellDef>Domain Name</mat-header-cell>
<mat-cell *matCellDef="let element">{{
element.domainName
}}</mat-cell>
</ng-container>
<ng-container matColumnDef="creationTime">
<mat-header-cell *matHeaderCellDef>Creation Time</mat-header-cell>
<mat-cell *matCellDef="let element">
{{ element.creationTime.creationTime }}
</mat-cell>
</ng-container>
<ng-container matColumnDef="creationTime">
<mat-header-cell *matHeaderCellDef>Creation Time</mat-header-cell>
<mat-cell *matCellDef="let element">
{{ element.creationTime.creationTime }}
</mat-cell>
</ng-container>
<ng-container matColumnDef="registrationExpirationTime">
<mat-header-cell *matHeaderCellDef>Expiration Time</mat-header-cell>
<mat-cell *matCellDef="let element">
{{ element.registrationExpirationTime }}
</mat-cell>
</ng-container>
<ng-container matColumnDef="registrationExpirationTime">
<mat-header-cell *matHeaderCellDef>Expiration Time</mat-header-cell>
<mat-cell *matCellDef="let element">
{{ element.registrationExpirationTime }}
</mat-cell>
</ng-container>
<ng-container matColumnDef="statuses">
<mat-header-cell *matHeaderCellDef>Statuses</mat-header-cell>
<mat-cell *matCellDef="let element">{{ element.statuses }}</mat-cell>
</ng-container>
<ng-container matColumnDef="statuses">
<mat-header-cell *matHeaderCellDef>Statuses</mat-header-cell>
<mat-cell *matCellDef="let element">{{ element.statuses }}</mat-cell>
</ng-container>
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns"></mat-row>
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns"></mat-row>
<!-- Row shown when there is no matching data. -->
<mat-row *matNoDataRow>
<mat-cell colspan="4">No domains found</mat-cell>
</mat-row>
</mat-table>
<mat-paginator
[length]="totalResults"
[pageIndex]="pageNumber"
[pageSize]="resultsPerPage"
[pageSizeOptions]="[10, 25, 50, 100, 500]"
(page)="onPageChange($event)"
aria-label="Select page of domain results"
showFirstLastButtons
></mat-paginator>
<!-- Row shown when there is no matching data. -->
<mat-row *matNoDataRow>
<mat-cell colspan="4">No domains found</mat-cell>
</mat-row>
</mat-table>
<mat-paginator
[length]="totalResults"
[pageIndex]="pageNumber"
[pageSize]="resultsPerPage"
[pageSizeOptions]="[10, 25, 50, 100, 500]"
(page)="onPageChange($event)"
aria-label="Select page of domain results"
showFirstLastButtons
></mat-paginator>
</div>
}
</div>
</app-selected-registrar-wrapper>

View File

@@ -31,10 +31,24 @@
width: 100%;
}
&__domains-table-parent {
position: relative;
}
&__domains-table {
min-width: $min-width !important;
}
&__domains-spinner {
align-items: center;
display: flex;
justify-content: center;
position: absolute;
height: 100%;
width: 100%;
background: rgba(255, 255, 255, 0.6);
}
.mat-mdc-paginator {
min-width: $min-width !important;
}

View File

@@ -58,11 +58,10 @@ export class DomainListComponent {
private _snackBar: MatSnackBar
) {
effect(() => {
if (this.registrarService.registrarId()) {
this.pageNumber = 0;
this.totalResults = 0;
this.reloadData();
}
this.pageNumber = 0;
this.totalResults = 0;
this.reloadData();
this.registrarService.registrarId();
});
}

View File

@@ -0,0 +1,182 @@
<div class="console-new-registrar">
<button
mat-icon-button
aria-label="Back to registrars list"
(click)="goBack()"
>
<mat-icon>arrow_back</mat-icon>
</button>
<div class="spacer"></div>
<h1>Create a registrar</h1>
<form (ngSubmit)="save($event)" #form>
<h2>General</h2>
<section>
<mat-form-field appearance="outline">
<mat-label>Registrar Name: </mat-label>
<input
matInput
[required]="true"
[(ngModel)]="newRegistrar.registrarName"
[ngModelOptions]="{ standalone: true }"
/>
</mat-form-field>
</section>
<section>
<mat-form-field appearance="outline">
<mat-label>Registrar ID: </mat-label>
<input
matInput
[required]="true"
[(ngModel)]="newRegistrar.registrarId"
[ngModelOptions]="{ standalone: true }"
/>
</mat-form-field>
</section>
<section>
<mat-form-field appearance="outline">
<mat-label>Registrar email address: </mat-label>
<input
matInput
type="email"
[required]="true"
[(ngModel)]="newRegistrar.emailAddress"
[ngModelOptions]="{ standalone: true }"
/>
</mat-form-field>
</section>
<section>
<mat-form-field appearance="outline">
<mat-label>Billing Accounts: </mat-label>
<textarea
matInput
required="true"
placeholder="USD=billing-id-for-usd
JPY=billing-id-for-yen"
[ngModel]="billingAccountMap"
(ngModelChange)="onBillingAccountMapChange($event)"
[ngModelOptions]="{ standalone: true }"
></textarea>
</mat-form-field>
</section>
<section>
<mat-form-field appearance="outline">
<mat-label>IANA ID: </mat-label>
<input
matInput
[required]="true"
[(ngModel)]="newRegistrar.ianaIdentifier"
[ngModelOptions]="{ standalone: true }"
/>
</mat-form-field>
</section>
<section>
<mat-form-field appearance="outline">
<mat-label>ICANN referral email: </mat-label>
<input
matInput
[required]="true"
type="email"
[(ngModel)]="newRegistrar.icannReferralEmail"
[ngModelOptions]="{ standalone: true }"
/>
</mat-form-field>
</section>
<section>
<mat-form-field appearance="outline">
<mat-label>Drive ID: </mat-label>
<input
matInput
[required]="true"
[(ngModel)]="newRegistrar.driveFolderId"
[ngModelOptions]="{ standalone: true }"
/>
</mat-form-field>
</section>
<h2>Contact Info</h2>
<section>
<mat-form-field appearance="outline">
<mat-label>Street address (Line 1): </mat-label>
<input
matInput
[required]="true"
[(ngModel)]="localizedAddressStreet.line1"
[ngModelOptions]="{ standalone: true }"
/>
</mat-form-field>
</section>
<section>
<mat-form-field appearance="outline">
<mat-label>Street address (Line 2)</mat-label>
<input
matInput
[required]="false"
[(ngModel)]="localizedAddressStreet.line2"
[ngModelOptions]="{ standalone: true }"
/>
</mat-form-field>
</section>
<section>
<mat-form-field appearance="outline">
<mat-label>Street address (Line 3)</mat-label>
<input
matInput
[required]="false"
[(ngModel)]="localizedAddressStreet.line3"
[ngModelOptions]="{ standalone: true }"
/>
</mat-form-field>
</section>
<section>
<mat-form-field appearance="outline">
<mat-label>City: </mat-label>
<input
matInput
[required]="true"
[(ngModel)]="newRegistrar.localizedAddress.city"
[ngModelOptions]="{ standalone: true }"
/>
</mat-form-field>
</section>
<section>
<mat-form-field appearance="outline">
<mat-label>State/Region: </mat-label>
<input
matInput
[required]="false"
[(ngModel)]="newRegistrar.localizedAddress.state"
[ngModelOptions]="{ standalone: true }"
/>
</mat-form-field>
</section>
<section>
<mat-form-field appearance="outline">
<mat-label>ZIP/Postal Code: </mat-label>
<input
matInput
[required]="true"
[(ngModel)]="newRegistrar.localizedAddress.zip"
[ngModelOptions]="{ standalone: true }"
/>
</mat-form-field>
</section>
<section>
<mat-form-field appearance="outline">
<mat-label>Country Code (e.g. US): </mat-label>
<input
matInput
[required]="true"
[(ngModel)]="newRegistrar.localizedAddress.countryCode"
[ngModelOptions]="{ standalone: true }"
/>
</mat-form-field>
</section>
<button
class="console-new-registrar__submit"
mat-flat-button
color="primary"
type="submit"
>
Save
</button>
</form>
</div>

View File

@@ -0,0 +1,20 @@
.console-new-registrar {
max-width: 616px;
h2 {
margin: 40px 0 25px 0;
}
section {
margin-bottom: 20px;
}
mat-form-field {
display: block;
width: 100%;
}
&__submit {
margin: 30px 0;
}
}

View File

@@ -0,0 +1,99 @@
// Copyright 2024 The Nomulus Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import { HttpErrorResponse } from '@angular/common/http';
import {
Component,
ElementRef,
ViewChild,
ViewEncapsulation,
} from '@angular/core';
import { MatSnackBar } from '@angular/material/snack-bar';
import { Registrar, RegistrarService } from './registrar.service';
interface LocalizedAddressStreet {
line1: string;
line2: string;
line3: string;
}
@Component({
selector: 'app-new-registrar',
templateUrl: './newRegistrar.component.html',
styleUrls: ['./newRegistrar.component.scss'],
encapsulation: ViewEncapsulation.None,
})
export default class NewRegistrarComponent {
protected newRegistrar: Registrar;
protected localizedAddressStreet: LocalizedAddressStreet;
protected billingAccountMap: String = '';
@ViewChild('form') form!: ElementRef;
constructor(
private registrarService: RegistrarService,
private _snackBar: MatSnackBar
) {
this.newRegistrar = {
registrarId: '',
url: '',
whoisServer: '',
registrarName: '',
icannReferralEmail: '',
localizedAddress: {
city: '',
state: '',
zip: '',
countryCode: '',
},
};
this.localizedAddressStreet = {
line1: '',
line2: '',
line3: '',
};
}
onBillingAccountMapChange(val: String) {
const billingAccountMap: { [key: string]: string } = {};
this.newRegistrar.billingAccountMap = val.split('\n').reduce((acc, val) => {
const [currency, billingCode] = val.split('=');
acc[currency] = billingCode;
return acc;
}, billingAccountMap);
}
save(e: SubmitEvent) {
e.preventDefault();
if (this.form.nativeElement.checkValidity()) {
const { line1, line2, line3 } = this.localizedAddressStreet;
this.newRegistrar.localizedAddress.street = [line1, line2, line3].filter(
(v) => !!v
);
this.registrarService.createRegistrar(this.newRegistrar).subscribe({
complete: () => {
this.goBack();
},
error: (err: HttpErrorResponse) => {
this._snackBar.open(err.error);
},
});
} else {
this.form.nativeElement.reportValidity();
}
}
goBack() {
this.registrarService.inNewRegistrarMode.set(false);
}
}

View File

@@ -13,7 +13,7 @@
// limitations under the License.
import { Injectable, computed, signal } from '@angular/core';
import { Observable, tap } from 'rxjs';
import { Observable, tap, switchMap } from 'rxjs';
import { MatSnackBar } from '@angular/material/snack-bar';
import { Router } from '@angular/router';
@@ -85,14 +85,21 @@ export class RegistrarService implements GlobalLoader {
this.registrars().find((r) => r.registrarId === this.registrarId())
);
inNewRegistrarMode = signal(false);
registrarsLoaded: Promise<void>;
constructor(
private backend: BackendService,
private globalLoader: GlobalLoaderService,
private _snackBar: MatSnackBar,
private router: Router
) {
this.loadRegistrars().subscribe((r) => {
this.globalLoader.stopGlobalLoader(this);
this.registrarsLoaded = new Promise((resolve) => {
this.loadRegistrars().subscribe((r) => {
this.globalLoader.stopGlobalLoader(this);
resolve();
});
});
this.globalLoader.startGlobalLoader(this);
}
@@ -118,19 +125,23 @@ export class RegistrarService implements GlobalLoader {
);
}
saveRegistrar(registrar: Registrar) {
return this.backend.postRegistrar(registrar).pipe(
tap((registrar) => {
if (registrar) {
this.registrars.set(
this.registrars().map((r) => {
if (r.registrarId === registrar.registrarId) {
return registrar;
}
return r;
})
);
}
createRegistrar(registrar: Registrar) {
return this.backend
.createRegistrar(registrar)
.pipe(switchMap((_) => this.loadRegistrars()));
}
updateRegistrar(updatedRegistrar: Registrar) {
return this.backend.updateRegistrar(updatedRegistrar).pipe(
tap(() => {
this.registrars.set(
this.registrars().map((r) => {
if (r.registrarId === updatedRegistrar.registrarId) {
return updatedRegistrar;
}
return r;
})
);
})
);
}

View File

@@ -42,28 +42,32 @@ export class RegistrarDetailsComponent implements OnInit {
) {}
ngOnInit(): void {
this.subscription = this.route.paramMap.subscribe((params: ParamMap) => {
this.registrarInEdit = structuredClone(
this.registrarService
.registrars()
.filter((r) => r.registrarId === params.get('id'))[0]
);
if (!this.registrarInEdit) {
this._snackBar.open(
`Registrar with id ${params.get('id')} is not available`
this.registrarService.registrarsLoaded.then(() => {
this.subscription = this.route.paramMap.subscribe((params: ParamMap) => {
this.registrarInEdit = structuredClone(
this.registrarService
.registrars()
.filter((r) => r.registrarId === params.get('id'))[0]
);
this.registrarNotFound = true;
} else {
this.registrarNotFound = false;
}
if (!this.registrarInEdit) {
this._snackBar.open(
`Registrar with id ${params.get('id')} is not available`
);
this.registrarNotFound = true;
} else {
this.registrarNotFound = false;
}
});
});
}
addTLD(e: MatChipInputEvent) {
this.registrarInEdit.allowedTlds = this.registrarInEdit.allowedTlds || [];
this.removeTLD(e.value); // Prevent dups
this.registrarInEdit.allowedTlds = this.registrarInEdit.allowedTlds?.concat(
[e.value.toLowerCase()]
);
this.registrarInEdit.allowedTlds = [
...this.registrarInEdit.allowedTlds,
e.value.toLowerCase(),
];
}
removeTLD(tld: string) {
@@ -73,7 +77,7 @@ export class RegistrarDetailsComponent implements OnInit {
}
saveAndClose() {
this.registrarService.saveRegistrar(this.registrarInEdit).subscribe({
this.registrarService.updateRegistrar(this.registrarInEdit).subscribe({
complete: () => {
this.router.navigate([RegistrarComponent.PATH], {
queryParamsHandling: 'merge',

View File

@@ -1,5 +1,19 @@
@if(registrarService.inNewRegistrarMode()) {
<app-new-registrar />
} @else {
<div class="console-app__registrars">
<h1 class="mat-headline-4">Registrars</h1>
<div class="console-app__registrars-header">
<h1 class="mat-headline-4">Registrars</h1>
<button
mat-flat-button
color="primary"
(click)="openNewRegistrar()"
aria-label="Add new registrar"
>
<mat-icon>add</mat-icon>
Add new registrar
</button>
</div>
<mat-form-field class="console-app__registrars-filter">
<mat-label>Search</mat-label>
<input
@@ -36,3 +50,5 @@
showFirstLastButtons
></mat-paginator>
</div>
}

View File

@@ -15,6 +15,11 @@
min-width: $min-width !important;
}
&__registrars-header {
display: flex;
justify-content: space-between;
}
.mat-mdc-paginator {
min-width: $min-width !important;
}

View File

@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
import { Component, ViewChild, ViewEncapsulation } from '@angular/core';
import { Component, effect, ViewChild, ViewEncapsulation } from '@angular/core';
import { MatPaginator } from '@angular/material/paginator';
import { MatSort } from '@angular/material/sort';
import { MatTableDataSource } from '@angular/material/table';
@@ -93,6 +93,9 @@ export class RegistrarComponent {
this.dataSource = new MatTableDataSource<Registrar>(
registrarService.registrars()
);
effect(() => {
this.dataSource.data = registrarService.registrars();
});
}
ngAfterViewInit() {
@@ -111,4 +114,8 @@ export class RegistrarComponent {
// TODO: consider filteing out only by registrar name
this.dataSource.filter = filterValue.trim().toLowerCase();
}
openNewRegistrar() {
this.registrarService.inNewRegistrarMode.set(true);
}
}

View File

@@ -110,7 +110,13 @@ export class BackendService {
.pipe(catchError((err) => this.errorCatcher<Registrar[]>(err)));
}
postRegistrar(registrar: Registrar): Observable<Registrar> {
createRegistrar(registrar: Registrar): Observable<Registrar> {
return this.http
.post<Registrar>('/console-api/registrars', registrar)
.pipe(catchError((err) => this.errorCatcher<Registrar>(err)));
}
updateRegistrar(registrar: Registrar): Observable<Registrar> {
return this.http
.post<Registrar>('/console-api/registrar', registrar)
.pipe(catchError((err) => this.errorCatcher<Registrar>(err)));

View File

@@ -135,14 +135,12 @@ dependencies {
implementation deps['com.google.api.grpc:proto-google-common-protos']
implementation deps['com.google.api.grpc:proto-google-cloud-secretmanager-v1']
implementation deps['com.google.api-client:google-api-client']
implementation deps['com.google.api-client:google-api-client-appengine']
implementation deps['com.google.api-client:google-api-client-servlet']
implementation deps['com.google.monitoring-client:metrics']
implementation deps['com.google.monitoring-client:stackdriver']
implementation deps['com.google.api-client:google-api-client-java6']
implementation deps['com.google.api.grpc:proto-google-cloud-tasks-v2']
implementation deps['com.google.apis:google-api-services-admin-directory']
implementation deps['com.google.apis:google-api-services-appengine']
implementation deps['com.google.apis:google-api-services-bigquery']
implementation deps['com.google.apis:google-api-services-dataflow']
implementation deps['com.google.apis:google-api-services-dns']
@@ -176,12 +174,10 @@ dependencies {
implementation deps['com.google.cloud:google-cloud-storage']
implementation deps['com.google.cloud:google-cloud-tasks']
implementation deps['com.google.http-client:google-http-client']
implementation deps['com.google.http-client:google-http-client-appengine']
implementation deps['com.google.http-client:google-http-client-jackson2']
implementation deps['com.google.oauth-client:google-oauth-client']
implementation deps['com.google.oauth-client:google-oauth-client-java6']
implementation deps['com.google.oauth-client:google-oauth-client-jetty']
implementation deps['com.google.oauth-client:google-oauth-client-appengine']
implementation deps['com.google.oauth-client:google-oauth-client-servlet']
implementation deps['com.google.protobuf:protobuf-java']
implementation deps['com.google.re2j:re2j']
@@ -247,6 +243,7 @@ dependencies {
implementation deps['us.fatehi:schemacrawler-api']
implementation deps['us.fatehi:schemacrawler-diagram']
implementation deps['us.fatehi:schemacrawler-tools']
implementation deps['us.fatehi:schemacrawler-postgresql']
implementation deps['xerces:xmlParserAPIs']
implementation deps['org.ogce:xpp3']
// Known issue: nebula-lint misses inherited dependency.

View File

@@ -40,11 +40,10 @@ com.github.jnr:jnr-unixsocket:0.38.22=compileClasspath,deploy_jar,nonprodCompile
com.github.jnr:jnr-x86asm:1.0.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor
com.google.android:annotations:4.1.1.4=deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-appengine:2.6.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-jackson2:2.0.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-java6:2.1.4=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-servlet:2.6.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:1.35.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:2.6.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:gapic-google-cloud-storage-v2:2.32.1-alpha=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath
com.google.api.grpc:gapic-google-cloud-storage-v2:2.39.0-alpha=testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:3.4.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -88,12 +87,11 @@ com.google.api:gax-grpc:2.48.1=compileClasspath,deploy_jar,nonprodCompileClasspa
com.google.api:gax-httpjson:2.48.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api:gax:2.48.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-admin-directory:directory_v1-rev20240509-2.0.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-appengine:v1-rev20240415-2.0.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-bigquery:v2-rev20240229-2.0.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-bigquery:v2-rev20240423-2.0.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20240310-2.0.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dataflow:v1b3-rev20240218-2.0.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-drive:v2-rev393-1.25.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dataflow:v1b3-rev20240430-2.0.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dns:v1-rev20240419-2.0.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-drive:v3-rev20240521-2.0.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-gmail:v1-rev20240520-2.0.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-groupssettings:v1-rev20210624-2.0.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-healthcare:v1-rev20240130-2.0.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -112,7 +110,8 @@ com.google.auto.service:auto-service-annotations:1.1.1=annotationProcessor,compi
com.google.auto.service:auto-service:1.1.1=annotationProcessor
com.google.auto.value:auto-value-annotations:1.10.4=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.auto.value:auto-value-annotations:1.9=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor
com.google.auto.value:auto-value:1.10.4=annotationProcessor,compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
com.google.auto.value:auto-value:1.10.4=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.auto.value:auto-value:1.11.0=annotationProcessor,testAnnotationProcessor
com.google.auto:auto-common:1.2.1=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor
com.google.closure-stylesheets:closure-stylesheets:1.5.0=css
com.google.cloud.bigdataoss:gcsio:2.2.16=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -170,19 +169,19 @@ com.google.googlejavaformat:google-java-format:1.5=annotationProcessor,testAnnot
com.google.guava:failureaccess:1.0.1=checkstyle,errorprone,nonprodAnnotationProcessor,soy
com.google.guava:failureaccess:1.0.2=annotationProcessor,compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
com.google.guava:guava-parent:32.1.1-jre=errorprone,nonprodAnnotationProcessor
com.google.guava:guava-testlib:33.2.0-jre=testCompileClasspath,testRuntimeClasspath
com.google.guava:guava-testlib:33.2.1-jre=testCompileClasspath,testRuntimeClasspath
com.google.guava:guava:20.0=css
com.google.guava:guava:31.0.1-jre=checkstyle,soy
com.google.guava:guava:32.1.1-jre=errorprone,nonprodAnnotationProcessor
com.google.guava:guava:33.0.0-jre=annotationProcessor,testAnnotationProcessor
com.google.guava:guava:33.2.0-android=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath
com.google.guava:guava:33.2.0-jre=testCompileClasspath,testRuntimeClasspath
com.google.guava:guava:33.2.1-jre=testCompileClasspath,testRuntimeClasspath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,checkstyle,compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,soy,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
com.google.gwt:gwt-user:2.10.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.43.3=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath
com.google.http-client:google-http-client-apache-v2:1.44.1=testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-appengine:1.44.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.44.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-appengine:1.43.3=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath
com.google.http-client:google-http-client-appengine:1.44.1=testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-jackson2:1.44.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-protobuf:1.44.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client:1.44.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -200,7 +199,6 @@ com.google.jsinterop:jsinterop-annotations:2.0.0=compileClasspath,deploy_jar,non
com.google.monitoring-client:contrib:1.0.7=testCompileClasspath,testRuntimeClasspath
com.google.monitoring-client:metrics:1.0.7=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.monitoring-client:stackdriver:1.0.7=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-appengine:1.36.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-java6:1.36.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-jetty:1.36.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-servlet:1.36.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -400,18 +398,18 @@ org.conscrypt:conscrypt-openjdk-uber:2.5.2=compileClasspath,deploy_jar,nonprodCo
org.easymock:easymock:3.0=css
org.eclipse.collections:eclipse-collections-api:11.1.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.eclipse.collections:eclipse-collections:11.1.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.9=testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty.ee10:jetty-ee10-webapp:12.0.9=testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-ee:12.0.9=testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-http:12.0.9=testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-io:12.0.9=testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-security:12.0.9=testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-server:12.0.9=testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-session:12.0.9=testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-util:12.0.9=testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-xml:12.0.9=testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-core:10.13.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-database-postgresql:10.13.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.10=testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty.ee10:jetty-ee10-webapp:12.0.10=testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-ee:12.0.10=testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-http:12.0.10=testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-io:12.0.10=testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-security:12.0.10=testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-server:12.0.10=testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-session:12.0.10=testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-util:12.0.10=testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-xml:12.0.10=testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-core:10.14.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-database-postgresql:10.14.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.glassfish.jaxb:jaxb-runtime:2.3.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.glassfish.jaxb:txw2:2.3.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.gwtproject:gwt-user:2.10.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -489,7 +487,7 @@ org.ow2.asm:asm:7.0=soy
org.ow2.asm:asm:9.2=compileClasspath,nonprodCompileClasspath
org.ow2.asm:asm:9.6=deploy_jar,jacocoAnt,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.pcollections:pcollections:3.1.4=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor
org.postgresql:postgresql:42.7.3=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.postgresql:postgresql:42.7.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.reflections:reflections:0.10.2=checkstyle
org.rnorth.duct-tape:duct-tape:1.0.8=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.seleniumhq.selenium:selenium-api:3.141.59=testCompileClasspath,testRuntimeClasspath
@@ -504,9 +502,8 @@ org.seleniumhq.selenium:selenium-safari-driver:3.141.59=testCompileClasspath,tes
org.seleniumhq.selenium:selenium-support:3.141.59=testCompileClasspath,testRuntimeClasspath
org.slf4j:jcl-over-slf4j:1.7.32=testCompileClasspath,testRuntimeClasspath
org.slf4j:jul-to-slf4j:1.7.30=testRuntimeClasspath
org.slf4j:slf4j-api:2.0.13=compileClasspath,nonprodCompileClasspath,nonprodRuntimeClasspath,testCompileClasspath
org.slf4j:slf4j-api:2.1.0-alpha1=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.slf4j:slf4j-jdk14:2.1.0-alpha1=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:2.0.13=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-jdk14:2.0.12=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.snakeyaml:snakeyaml-engine:2.1=deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
org.testcontainers:database-commons:1.19.8=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.testcontainers:jdbc:1.19.8=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -519,10 +516,13 @@ org.w3c.css:sac:1.3=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodR
org.webjars.npm:viz.js-graphviz-java:2.1.3=testRuntimeClasspath
org.xerial.snappy:snappy-java:1.1.10.4=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.yaml:snakeyaml:2.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-api:16.10.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-diagram:16.10.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-tools:16.10.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-utility:16.10.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler:16.10.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-api:16.21.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-diagram:16.21.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-loader:16.21.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-postgresql:16.21.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-text:16.21.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-tools:16.21.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-utility:16.21.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler:16.21.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
xerces:xmlParserAPIs:2.6.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
empty=devtool,nomulus_test

View File

@@ -401,7 +401,7 @@ public class CloudDnsWriter extends BaseDnsWriter {
if (err == null || err.getErrors().size() > 1) {
throw e;
}
String errorReason = err.getErrors().get(0).getReason();
String errorReason = err.getErrors().getFirst().getReason();
if (RETRYABLE_EXCEPTION_REASONS.contains(errorReason)) {
throw new ZoneStateException(errorReason);

View File

@@ -33,6 +33,7 @@ import static google.registry.flows.domain.DomainFlowUtils.validateDomainName;
import static google.registry.flows.domain.DomainFlowUtils.validateDomainNameWithIdnTables;
import static google.registry.flows.domain.DomainFlowUtils.verifyNotInPredelegation;
import static google.registry.model.tld.Tld.TldState.START_DATE_SUNRISE;
import static google.registry.model.tld.Tld.isEnrolledWithBsa;
import static google.registry.model.tld.label.ReservationType.getTypeOfHighestSeverity;
import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
@@ -188,7 +189,7 @@ public final class DomainCheckFlow implements TransactionalFlow {
ImmutableSet<InternetDomainName> bsaBlockedDomainNames =
existingDomains.size() == parsedDomains.size()
? ImmutableSet.of()
: getBsaBlockedDomains(parsedDomains.values());
: getBsaBlockedDomains(parsedDomains.values(), now);
Optional<AllocationTokenExtension> allocationTokenExtension =
eppInput.getSingleExtension(AllocationTokenExtension.class);
Optional<AllocationTokenDomainCheckResults> tokenDomainCheckResults =
@@ -441,9 +442,11 @@ public final class DomainCheckFlow implements TransactionalFlow {
}
static ImmutableSet<InternetDomainName> getBsaBlockedDomains(
ImmutableCollection<InternetDomainName> parsedDomains) {
ImmutableCollection<InternetDomainName> parsedDomains, DateTime now) {
Map<String, ImmutableList<InternetDomainName>> labelToDomainNames =
parsedDomains.stream()
.filter(
parsedDomain -> isEnrolledWithBsa(Tld.get(parsedDomain.parent().toString()), now))
.collect(
Collectors.groupingBy(
parsedDomain -> parsedDomain.parts().get(0), toImmutableList()));

View File

@@ -114,6 +114,7 @@ import google.registry.ui.server.console.ConsoleDomainListAction;
import google.registry.ui.server.console.ConsoleDumDownloadAction;
import google.registry.ui.server.console.ConsoleEppPasswordAction;
import google.registry.ui.server.console.ConsoleRegistryLockAction;
import google.registry.ui.server.console.ConsoleUpdateRegistrarAction;
import google.registry.ui.server.console.ConsoleUserDataAction;
import google.registry.ui.server.console.RegistrarsAction;
import google.registry.ui.server.console.settings.ContactAction;
@@ -192,6 +193,8 @@ interface RequestComponent {
ConsoleUiAction consoleUiAction();
ConsoleUpdateRegistrarAction consoleUpdateRegistrarAction();
ConsoleUserDataAction consoleUserDataAction();
ConsoleDumDownloadAction consoleDumDownloadAction();

View File

@@ -30,6 +30,7 @@ import google.registry.ui.server.console.ConsoleDomainListAction;
import google.registry.ui.server.console.ConsoleDumDownloadAction;
import google.registry.ui.server.console.ConsoleEppPasswordAction;
import google.registry.ui.server.console.ConsoleRegistryLockAction;
import google.registry.ui.server.console.ConsoleUpdateRegistrarAction;
import google.registry.ui.server.console.ConsoleUserDataAction;
import google.registry.ui.server.console.RegistrarsAction;
import google.registry.ui.server.console.settings.ContactAction;
@@ -70,6 +71,8 @@ public interface FrontendRequestComponent {
ConsoleUiAction consoleUiAction();
ConsoleUpdateRegistrarAction consoleUpdateRegistrarAction();
ConsoleUserDataAction consoleUserDataAction();
ConsoleDumDownloadAction consoleDumDownloadAction();

View File

@@ -16,11 +16,9 @@ package google.registry.storage.drive;
import com.google.api.client.http.ByteArrayContent;
import com.google.api.services.drive.Drive;
import com.google.api.services.drive.Drive.Children;
import com.google.api.services.drive.model.ChildList;
import com.google.api.services.drive.model.ChildReference;
import com.google.api.services.drive.Drive.Files;
import com.google.api.services.drive.model.File;
import com.google.api.services.drive.model.ParentReference;
import com.google.api.services.drive.model.FileList;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList;
import com.google.common.net.MediaType;
@@ -37,16 +35,19 @@ public class DriveConnection {
/** Drive client instance wrapped by this class. */
@Inject Drive drive;
@Inject public DriveConnection() {}
@Inject
public DriveConnection() {}
/**
* Creates a folder with the given parent.
*
* @return the folder id.
*/
public String createFolder(String title, String parentFolderId) throws IOException {
return drive.files()
.insert(createFileReference(title, GOOGLE_FOLDER, parentFolderId))
public String createFolder(String name, @Nullable String parentFolderId) throws IOException {
return drive
.files()
.create(createFileReference(name, GOOGLE_FOLDER, parentFolderId))
.execute()
.getId();
}
@@ -60,11 +61,12 @@ public class DriveConnection {
*
* @return the file id.
*/
public String createFile(String title, MediaType mimeType, String parentFolderId, byte[] bytes)
public String createFile(String name, MediaType mimeType, String parentFolderId, byte[] bytes)
throws IOException {
return drive.files()
.insert(
createFileReference(title, mimeType, parentFolderId),
return drive
.files()
.create(
createFileReference(name, mimeType, parentFolderId),
new ByteArrayContent(mimeType.toString(), bytes))
.execute()
.getId();
@@ -72,79 +74,79 @@ public class DriveConnection {
/**
* Creates a file with the given parent or updates the existing one if a file already exists with
* that same title and parent.
* that same name and parent.
*
* @throws IllegalStateException if multiple files with that name exist in the given folder.
* @throws IOException if communication with Google Drive fails for any reason.
* @return the file id.
*/
public String createOrUpdateFile(
String title, MediaType mimeType, String parentFolderId, byte[] bytes) throws IOException {
List<String> existingFiles = listFiles(parentFolderId, String.format("title = '%s'", title));
String name, MediaType mimeType, String parentFolderId, byte[] bytes) throws IOException {
List<String> existingFiles = listFiles(parentFolderId, String.format("name = '%s'", name));
if (existingFiles.size() > 1) {
throw new IllegalStateException(String.format(
"Could not update file '%s' in Drive folder id '%s' because multiple files with that "
+ "name already exist.",
title,
parentFolderId));
throw new IllegalStateException(
String.format(
"Could not update file '%s' in Drive folder id '%s' because multiple files with that "
+ "name already exist.",
name, parentFolderId));
}
return existingFiles.isEmpty()
? createFile(title, mimeType, parentFolderId, bytes)
: updateFile(existingFiles.get(0), title, mimeType, bytes);
? createFile(name, mimeType, parentFolderId, bytes)
: updateFile(existingFiles.getFirst(), name, mimeType, bytes);
}
/**
* Updates the file with the given id in place, setting the title, content, and mime type to the
* Updates the file with the given id in place, setting the name, content, and mime type to the
* newly specified values.
*
* @return the file id.
*/
public String updateFile(String fileId, String title, MediaType mimeType, byte[] bytes)
public String updateFile(String fileId, String name, MediaType mimeType, byte[] bytes)
throws IOException {
File file = new File().setTitle(title);
return drive.files()
File file = new File().setName(name);
return drive
.files()
.update(fileId, file, new ByteArrayContent(mimeType.toString(), bytes))
.execute()
.getId();
}
/**
* Returns a list of Drive file ids for all files in Google Drive in the folder with the
* specified id.
* Returns a list of Drive file ids for all files in Google Drive in the folder with the specified
* id.
*/
public List<String> listFiles(String parentFolderId) throws IOException {
return listFiles(parentFolderId, null);
}
/**
* Returns a list of Drive file ids for all files in Google Drive in the folder with the
* specified id and matching the given Drive query.
* Returns a list of Drive file ids for all files in Google Drive in the folder with the specified
* id and matching the given Drive query.
*
* @see <a href="https://developers.google.com/drive/web/search-parameters">The query format</a>
*/
public List<String> listFiles(String parentFolderId, String query) throws IOException {
ImmutableList.Builder<String> result = new ImmutableList.Builder<>();
Children.List req = drive.children().list(parentFolderId);
Files.List req = drive.files().list();
StringBuilder q = new StringBuilder(String.format("'%s' in parents", parentFolderId));
if (!Strings.isNullOrEmpty(query)) {
req.setQ(query);
q.append(String.format(" and %s", query));
}
req.setQ(q.toString());
do {
ChildList files = req.execute();
for (ChildReference child : files.getItems()) {
result.add(child.getId());
}
FileList files = req.execute();
files.getFiles().forEach(file -> result.add(file.getId()));
req.setPageToken(files.getNextPageToken());
} while (!Strings.isNullOrEmpty(req.getPageToken()));
return result.build();
}
/** Constructs an object representing a file (or folder) with a given title and parent. */
/** Constructs an object representing a file (or folder) with a given name and parent. */
private File createFileReference(
String title, MediaType mimeType, @Nullable String parentFolderId) {
String name, MediaType mimeType, @Nullable String parentFolderId) {
return new File()
.setTitle(title)
.setName(name)
.setMimeType(mimeType.toString())
.setParents(parentFolderId == null
? null
: ImmutableList.of(new ParentReference().setId(parentFolderId)));
.setParents(parentFolderId == null ? null : ImmutableList.of(parentFolderId));
}
}

View File

@@ -38,7 +38,7 @@ import javax.inject.Inject;
@Action(
service = Action.Service.DEFAULT,
path = ConsoleEppPasswordAction.PATH,
path = ConsoleUpdateRegistrarAction.PATH,
method = {POST},
auth = Auth.AUTH_PUBLIC_LOGGED_IN)
public class ConsoleUpdateRegistrarAction extends ConsoleApiAction {

View File

@@ -44,10 +44,13 @@ import schemacrawler.schemacrawler.LoadOptionsBuilder;
import schemacrawler.schemacrawler.SchemaCrawlerOptions;
import schemacrawler.schemacrawler.SchemaCrawlerOptionsBuilder;
import schemacrawler.schemacrawler.SchemaInfoLevelBuilder;
import schemacrawler.tools.command.text.diagram.options.DiagramOutputFormat;
import schemacrawler.tools.executable.SchemaCrawlerExecutable;
import schemacrawler.tools.integration.diagram.DiagramOutputFormat;
import schemacrawler.tools.options.OutputOptions;
import schemacrawler.tools.options.OutputOptionsBuilder;
import us.fatehi.utility.datasource.DatabaseConnectionSource;
import us.fatehi.utility.datasource.DatabaseConnectionSources;
import us.fatehi.utility.datasource.MultiUseUserCredentials;
/** Command to generate ER diagrams for SQL schema. */
@Parameters(separators = " =", commandDescription = "Generate ER diagrams for SQL schema.")
@@ -111,10 +114,12 @@ public class GenerateSqlErDiagramCommand implements Command {
Connection conn = getConnection(postgresContainer);
initDb(conn);
if (diagramType == ALL || diagramType == FULL) {
improveDiagramHtml(generateErDiagram(conn, FULL_DIAGRAM_COMMAND, FULL_DIAGRAM_FILE_NAME));
improveDiagramHtml(
generateErDiagram(postgresContainer, FULL_DIAGRAM_COMMAND, FULL_DIAGRAM_FILE_NAME));
}
if (diagramType == ALL || diagramType == BRIEF) {
improveDiagramHtml(generateErDiagram(conn, BRIEF_DIAGRAM_COMMAND, BRIEF_DIAGRAM_FILE_NAME));
improveDiagramHtml(
generateErDiagram(postgresContainer, BRIEF_DIAGRAM_COMMAND, BRIEF_DIAGRAM_FILE_NAME));
}
}
}
@@ -165,7 +170,8 @@ public class GenerateSqlErDiagramCommand implements Command {
}
}
private Path generateErDiagram(Connection connection, String command, String fileName) {
private Path generateErDiagram(
PostgreSQLContainer<?> container, String command, String fileName) {
Path outputFile = outDir.resolve(fileName);
LoadOptionsBuilder loadOptionsBuilder =
@@ -179,7 +185,11 @@ public class GenerateSqlErDiagramCommand implements Command {
SchemaCrawlerExecutable executable = new SchemaCrawlerExecutable(command);
executable.setSchemaCrawlerOptions(options);
executable.setOutputOptions(outputOptions);
executable.setConnection(connection);
DatabaseConnectionSource connection =
DatabaseConnectionSources.newDatabaseConnectionSource(
container.getJdbcUrl(),
new MultiUseUserCredentials(container.getUsername(), container.getPassword()));
executable.setDataSource(connection);
try {
executable.execute();
} catch (Exception e) {

View File

@@ -87,6 +87,7 @@ import google.registry.model.tld.Tld.TldState;
import google.registry.model.tld.label.ReservedList;
import google.registry.testing.DatabaseHelper;
import java.math.BigDecimal;
import java.util.Optional;
import org.joda.money.Money;
import org.joda.time.DateTime;
import org.junit.jupiter.api.BeforeEach;
@@ -160,6 +161,8 @@ class DomainCheckFlowTest extends ResourceCheckFlowTestCase<DomainCheckFlow, Dom
@Test
void testSuccess_bsaBlocked_otherwiseAvailable_blocked() throws Exception {
persistResource(
Tld.get("tld").asBuilder().setBsaEnrollStartTime(Optional.of(START_OF_TIME)).build());
persistBsaLabel("example1");
doCheckTest(
create(false, "example1.tld", "Blocked by a GlobalBlock service"),
@@ -169,6 +172,8 @@ class DomainCheckFlowTest extends ResourceCheckFlowTestCase<DomainCheckFlow, Dom
@Test
void testSuccess_bsaBlocked_alsoRegistered_registered() throws Exception {
persistResource(
Tld.get("tld").asBuilder().setBsaEnrollStartTime(Optional.of(START_OF_TIME)).build());
persistBsaLabel("example1");
persistActiveDomain("example1.tld");
doCheckTest(
@@ -179,6 +184,8 @@ class DomainCheckFlowTest extends ResourceCheckFlowTestCase<DomainCheckFlow, Dom
@Test
void testSuccess_bsaBlocked_alsoReserved_reserved() throws Exception {
persistResource(
Tld.get("tld").asBuilder().setBsaEnrollStartTime(Optional.of(START_OF_TIME)).build());
persistBsaLabel("reserved");
persistBsaLabel("allowedinsunrise");
setEppInput("domain_check_one_tld_reserved.xml");
@@ -191,6 +198,8 @@ class DomainCheckFlowTest extends ResourceCheckFlowTestCase<DomainCheckFlow, Dom
@Test
void testSuccess_bsaBlocked_createAllowedWithToken() throws Exception {
persistResource(
Tld.get("tld").asBuilder().setBsaEnrollStartTime(Optional.of(START_OF_TIME)).build());
persistBsaLabel("example1");
setEppInput("domain_check_allocationtoken.xml");
persistResource(
@@ -208,6 +217,8 @@ class DomainCheckFlowTest extends ResourceCheckFlowTestCase<DomainCheckFlow, Dom
@Test
void testSuccess_bsaBlocked_withIrrelevantTokenType() throws Exception {
persistResource(
Tld.get("tld").asBuilder().setBsaEnrollStartTime(Optional.of(START_OF_TIME)).build());
persistBsaLabel("example1");
setEppInput("domain_check_allocationtoken.xml");
persistResource(
@@ -223,6 +234,19 @@ class DomainCheckFlowTest extends ResourceCheckFlowTestCase<DomainCheckFlow, Dom
create(false, "specificuse.tld", "Reserved; alloc. token required"));
}
@Test
void testSuccess_bsaBlocked_onlyInEnrolledTlds() throws Exception {
setEppInput("domain_check.xml");
createTlds("com", "net", "org");
persistResource(
Tld.get("com").asBuilder().setBsaEnrollStartTime(Optional.of(START_OF_TIME)).build());
persistBsaLabel("example");
doCheckTest(
create(false, "example.com", "Blocked by a GlobalBlock service"),
create(true, "example.net", null),
create(true, "example.org", null));
}
@Test
void testSuccess_clTridNotSpecified() throws Exception {
setEppInput("domain_check_no_cltrid.xml");

View File

@@ -18,7 +18,6 @@ import static com.google.common.io.ByteStreams.toByteArray;
import static com.google.common.truth.Truth.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
@@ -28,12 +27,9 @@ import static org.mockito.Mockito.when;
import com.google.api.client.http.ByteArrayContent;
import com.google.api.services.drive.Drive;
import com.google.api.services.drive.Drive.Children;
import com.google.api.services.drive.Drive.Files;
import com.google.api.services.drive.model.ChildList;
import com.google.api.services.drive.model.ChildReference;
import com.google.api.services.drive.model.File;
import com.google.api.services.drive.model.ParentReference;
import com.google.api.services.drive.model.FileList;
import com.google.common.collect.ImmutableList;
import com.google.common.net.MediaType;
import java.util.Arrays;
@@ -47,15 +43,13 @@ class DriveConnectionTest {
private final Drive drive = mock(Drive.class);
private final Files files = mock(Files.class);
private final Children children = mock(Children.class);
private final Files.Insert insert = mock(Files.Insert.class);
private final Files.Create create = mock(Files.Create.class);
private final Files.Update update = mock(Files.Update.class);
private final Children.List childrenList = mock(Children.List.class);
private final Files.List filesList = mock(Files.List.class);
private static final byte[] DATA = {1, 2, 3};
ChildList childList;
private DriveConnection driveConnection;
private List<String> allChildren;
private List<String> allFiles;
private ArgumentMatcher<ByteArrayContent> hasByteArrayContent(final byte[] data) {
return arg -> {
@@ -72,154 +66,143 @@ class DriveConnectionTest {
driveConnection = new DriveConnection();
driveConnection.drive = drive;
when(drive.files()).thenReturn(files);
when(drive.children()).thenReturn(children);
when(insert.execute()).thenReturn(new File().setId("id"));
when(create.execute()).thenReturn(new File().setId("id"));
when(update.execute()).thenReturn(new File().setId("id"));
// Mocking required for listFiles.
ChildReference child1 = new ChildReference().setId("child1");
ChildReference child2 = new ChildReference().setId("child2");
ChildReference child3 = new ChildReference().setId("child3");
ChildReference child4 = new ChildReference().setId("child4");
List<ChildReference> children1 = ImmutableList.of(child1, child2);
List<ChildReference> children2 = ImmutableList.of(child3, child4);
allChildren = ImmutableList.of(child1.getId(), child2.getId(), child3.getId(), child4.getId());
ChildList childList1 = new ChildList();
childList1.setItems(children1);
childList1.setNextPageToken("page2");
ChildList childList2 = new ChildList();
childList2.setItems(children2);
childList2.setNextPageToken(null);
when(childrenList.execute()).thenReturn(childList1, childList2);
when(childrenList.setQ(anyString())).thenReturn(childrenList);
when(childrenList.getPageToken()).thenCallRealMethod();
when(childrenList.setPageToken(any())).thenCallRealMethod();
when(children.list("driveFolderId")).thenReturn(childrenList);
File file1 = new File().setId("file1");
File file2 = new File().setId("file2");
File file3 = new File().setId("file2");
File file4 = new File().setId("file4");
List<File> files1 = ImmutableList.of(file1, file2);
List<File> files2 = ImmutableList.of(file3, file4);
allFiles = ImmutableList.of(file1.getId(), file2.getId(), file3.getId(), file4.getId());
FileList fileList1 = new FileList();
fileList1.setFiles(files1);
fileList1.setNextPageToken("page2");
FileList fileList2 = new FileList();
fileList2.setFiles(files2);
fileList2.setNextPageToken(null);
when(filesList.execute()).thenReturn(fileList1, fileList2);
when(filesList.getPageToken()).thenCallRealMethod();
when(filesList.setPageToken(any())).thenCallRealMethod();
when(files.list()).thenReturn(filesList);
}
@Test
void testCreateFileAtRoot() throws Exception {
when(files.insert(
eq(new File().setTitle("title").setMimeType("image/gif")),
when(files.create(
eq(new File().setName("name").setMimeType("image/gif")),
argThat(hasByteArrayContent(DATA))))
.thenReturn(insert);
assertThat(driveConnection.createFile("title", MediaType.GIF, null, DATA)).isEqualTo("id");
.thenReturn(create);
assertThat(driveConnection.createFile("name", MediaType.GIF, null, DATA)).isEqualTo("id");
}
@Test
void testCreateFileInFolder() throws Exception {
when(files.insert(
when(files.create(
eq(
new File()
.setTitle("title")
.setName("name")
.setMimeType("image/gif")
.setParents(ImmutableList.of(new ParentReference().setId("parent")))),
.setParents(ImmutableList.of("parent"))),
argThat(hasByteArrayContent(DATA))))
.thenReturn(insert);
assertThat(driveConnection.createFile("title", MediaType.GIF, "parent", DATA)).isEqualTo("id");
.thenReturn(create);
assertThat(driveConnection.createFile("name", MediaType.GIF, "parent", DATA)).isEqualTo("id");
}
@Test
void testCreateFolderAtRoot() throws Exception {
when(files.insert(
new File().setTitle("title").setMimeType("application/vnd.google-apps.folder")))
.thenReturn(insert);
assertThat(driveConnection.createFolder("title", null)).isEqualTo("id");
when(files.create(new File().setName("name").setMimeType("application/vnd.google-apps.folder")))
.thenReturn(create);
assertThat(driveConnection.createFolder("name", null)).isEqualTo("id");
}
@Test
void testCreateFolderInFolder() throws Exception {
when(files.insert(
when(files.create(
new File()
.setTitle("title")
.setName("name")
.setMimeType("application/vnd.google-apps.folder")
.setParents(ImmutableList.of(new ParentReference().setId("parent")))))
.thenReturn(insert);
assertThat(driveConnection.createFolder("title", "parent")).isEqualTo("id");
.setParents(ImmutableList.of("parent"))))
.thenReturn(create);
assertThat(driveConnection.createFolder("name", "parent")).isEqualTo("id");
}
@Test
void testListFiles_noQueryWithPagination() throws Exception {
assertThat(driveConnection.listFiles("driveFolderId")).containsExactlyElementsIn(allChildren);
verify(childrenList).setPageToken("page2");
verify(childrenList).setPageToken(null);
verify(childrenList, times(0)).setQ(anyString());
verify(childrenList, times(2)).getPageToken();
assertThat(driveConnection.listFiles("driveFolderId")).containsExactlyElementsIn(allFiles);
verify(filesList).setPageToken("page2");
verify(filesList).setPageToken(null);
verify(filesList, times(1)).setQ("'driveFolderId' in parents");
verify(filesList, times(2)).getPageToken();
}
@Test
void testListFiles_withQueryAndPagination() throws Exception {
assertThat(driveConnection.listFiles("driveFolderId", "sampleQuery"))
.containsExactlyElementsIn(allChildren);
verify(childrenList).setPageToken("page2");
verify(childrenList).setPageToken(null);
verify(childrenList, times(1)).setQ("sampleQuery");
verify(childrenList, times(2)).getPageToken();
.containsExactlyElementsIn(allFiles);
verify(filesList).setPageToken("page2");
verify(filesList).setPageToken(null);
verify(filesList, times(1)).setQ("'driveFolderId' in parents and sampleQuery");
verify(filesList, times(2)).getPageToken();
}
@Test
void testCreateOrUpdateFile_succeedsForNewFile() throws Exception {
when(files.insert(
when(files.create(
eq(
new File()
.setTitle("title")
.setName("name")
.setMimeType("video/webm")
.setParents(ImmutableList.of(new ParentReference().setId("driveFolderId")))),
.setParents(ImmutableList.of("driveFolderId"))),
argThat(hasByteArrayContent(DATA))))
.thenReturn(insert);
ChildList emptyChildList = new ChildList().setItems(ImmutableList.of()).setNextPageToken(null);
when(childrenList.execute()).thenReturn(emptyChildList);
.thenReturn(create);
FileList emptyFileList = new FileList().setFiles(ImmutableList.of()).setNextPageToken(null);
when(filesList.execute()).thenReturn(emptyFileList);
assertThat(
driveConnection.createOrUpdateFile(
"title", MediaType.WEBM_VIDEO, "driveFolderId", DATA))
driveConnection.createOrUpdateFile("name", MediaType.WEBM_VIDEO, "driveFolderId", DATA))
.isEqualTo("id");
}
@Test
void testCreateOrUpdateFile_succeedsForUpdatingFile() throws Exception {
when(files.update(
eq("id"), eq(new File().setTitle("title")), argThat(hasByteArrayContent(DATA))))
when(files.update(eq("id"), eq(new File().setName("name")), argThat(hasByteArrayContent(DATA))))
.thenReturn(update);
ChildList childList =
new ChildList()
.setItems(ImmutableList.of(new ChildReference().setId("id")))
.setNextPageToken(null);
when(childrenList.execute()).thenReturn(childList);
FileList fileList =
new FileList().setFiles(ImmutableList.of(new File().setId("id"))).setNextPageToken(null);
when(filesList.execute()).thenReturn(fileList);
assertThat(
driveConnection.createOrUpdateFile(
"title", MediaType.WEBM_VIDEO, "driveFolderId", DATA))
driveConnection.createOrUpdateFile("name", MediaType.WEBM_VIDEO, "driveFolderId", DATA))
.isEqualTo("id");
}
@Test
void testCreateOrUpdateFile_throwsExceptionWhenMultipleFilesWithNameAlreadyExist()
throws Exception {
ChildList childList =
new ChildList()
.setItems(
ImmutableList.of(
new ChildReference().setId("id1"), new ChildReference().setId("id2")))
FileList fileList =
new FileList()
.setFiles(ImmutableList.of(new File().setId("id1"), new File().setId("id2")))
.setNextPageToken(null);
when(childrenList.execute()).thenReturn(childList);
when(filesList.execute()).thenReturn(fileList);
IllegalStateException thrown =
assertThrows(
IllegalStateException.class,
() ->
driveConnection.createOrUpdateFile(
"title", MediaType.WEBM_VIDEO, "driveFolderId", DATA));
"name", MediaType.WEBM_VIDEO, "driveFolderId", DATA));
assertThat(thrown)
.hasMessageThat()
.contains(
"Could not update file 'title' in Drive folder id 'driveFolderId' "
"Could not update file 'name' in Drive folder id 'driveFolderId' "
+ "because multiple files with that name already exist.");
}
@Test
void testUpdateFile_succeeds() throws Exception {
when(files.update(
eq("id"), eq(new File().setTitle("title")), argThat(hasByteArrayContent(DATA))))
when(files.update(eq("id"), eq(new File().setName("name")), argThat(hasByteArrayContent(DATA))))
.thenReturn(update);
assertThat(driveConnection.updateFile("id", "title", MediaType.WEBM_VIDEO, DATA))
assertThat(driveConnection.updateFile("id", "name", MediaType.WEBM_VIDEO, DATA))
.isEqualTo("id");
}
}

View File

@@ -99,7 +99,7 @@ class ConsoleUpdateRegistrarActionTest {
new JpaTestExtensions.Builder().buildIntegrationTestExtension();
@Test
void testSuccess__updatesRegistrar() throws IOException {
void testSuccess_updatesRegistrar() throws IOException {
var action = createAction(String.format(registrarPostData, "TheRegistrar", "app, dev", false));
action.run();
Registrar newRegistrar = Registrar.loadByRegistrarId("TheRegistrar").get();
@@ -109,7 +109,7 @@ class ConsoleUpdateRegistrarActionTest {
}
@Test
void testFails__missingWhoisContact() throws IOException {
void testFails_missingWhoisContact() throws IOException {
RegistryEnvironment.PRODUCTION.setup(systemPropertyExtension);
var action = createAction(String.format(registrarPostData, "TheRegistrar", "app, dev", false));
action.run();
@@ -119,7 +119,7 @@ class ConsoleUpdateRegistrarActionTest {
}
@Test
void testSuccess__presentWhoisContact() throws IOException {
void testSuccess_presentWhoisContact() throws IOException {
RegistryEnvironment.PRODUCTION.setup(systemPropertyExtension);
RegistrarPoc contact =
new RegistrarPoc.Builder()
@@ -143,7 +143,7 @@ class ConsoleUpdateRegistrarActionTest {
}
@Test
void testSuccess__sendsEmail() throws AddressException, IOException {
void testSuccess_sendsEmail() throws AddressException, IOException {
var action = createAction(String.format(registrarPostData, "TheRegistrar", "app, dev", false));
action.run();
verify(consoleApiParams.sendEmailUtils().gmailClient, times(1))

View File

@@ -4,6 +4,7 @@ PATH CLASS METHODS OK MIN
/console-api/domain-list ConsoleDomainListAction GET n USER PUBLIC
/console-api/dum-download ConsoleDumDownloadAction GET n USER PUBLIC
/console-api/eppPassword ConsoleEppPasswordAction POST n USER PUBLIC
/console-api/registrar ConsoleUpdateRegistrarAction POST n USER PUBLIC
/console-api/registrars RegistrarsAction GET,POST n USER PUBLIC
/console-api/registry-lock ConsoleRegistryLockAction GET,POST n USER PUBLIC
/console-api/settings/contacts ContactAction GET,POST n USER PUBLIC

View File

@@ -60,6 +60,7 @@ PATH CLASS
/console-api/domain-list ConsoleDomainListAction GET n USER PUBLIC
/console-api/dum-download ConsoleDumDownloadAction GET n USER PUBLIC
/console-api/eppPassword ConsoleEppPasswordAction POST n USER PUBLIC
/console-api/registrar ConsoleUpdateRegistrarAction POST n USER PUBLIC
/console-api/registrars RegistrarsAction GET,POST n USER PUBLIC
/console-api/registry-lock ConsoleRegistryLockAction GET,POST n USER PUBLIC
/console-api/settings/contacts ContactAction GET,POST n USER PUBLIC

View File

@@ -9,6 +9,6 @@ com.fasterxml.jackson:jackson-bom:2.15.2=classpath
com.google.code.gson:gson:2.10.1=classpath
gradle.plugin.org.flywaydb:gradle-plugin-publishing:10.13.0=classpath
org.flywaydb.flyway:org.flywaydb.flyway.gradle.plugin:10.13.0=classpath
org.flywaydb:flyway-core:10.13.0=classpath
org.flywaydb:flyway-database-postgresql:10.13.0=classpath
org.flywaydb:flyway-core:10.14.0=classpath
org.flywaydb:flyway-database-postgresql:10.14.0=classpath
empty=

View File

@@ -51,7 +51,7 @@ com.google.guava:guava-parent:32.1.1-jre=annotationProcessor,errorprone,testAnno
com.google.guava:guava:31.0.1-jre=checkstyle
com.google.guava:guava:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor
com.google.guava:guava:33.2.0-android=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.guava:guava:33.2.0-jre=testCompileClasspath
com.google.guava:guava:33.2.1-jre=testCompileClasspath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=checkstyle,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.44.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
@@ -90,8 +90,8 @@ org.checkerframework:checker-compat-qual:2.5.3=testCompileClasspath,testRuntimeC
org.checkerframework:checker-qual:3.12.0=checkstyle
org.checkerframework:checker-qual:3.33.0=annotationProcessor,errorprone,testAnnotationProcessor
org.checkerframework:checker-qual:3.42.0=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-core:10.13.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-database-postgresql:10.13.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-core:10.14.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-database-postgresql:10.14.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.hamcrest:hamcrest-core:1.3=testCompileClasspath,testRuntimeClasspath
org.jacoco:org.jacoco.agent:0.8.11=jacocoAgent,jacocoAnt
org.jacoco:org.jacoco.ant:0.8.11=jacocoAnt

View File

@@ -261,26 +261,26 @@ td.section {
</tr>
<tr>
<td class="property_name">generated on</td>
<td class="property_value">2024-05-30 20:54:05.059075326</td>
<td class="property_value">2024-06-05 18:34:54.436578672</td>
</tr>
<tr>
<td class="property_name">last flyway file</td>
<td id="lastFlywayFile" class="property_value">V172__allocation_token_renewal_price.sql</td>
<td id="lastFlywayFile" class="property_value">V173__create_feature_flag_table.sql</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<svg viewBox="0.00 0.00 4029.00 3497.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="erDiagram" style="overflow: hidden; width: 100%; height: 800px">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 3493.5)">
<svg viewBox="0.00 0.00 4029.00 3564.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="erDiagram" style="overflow: hidden; width: 100%; height: 800px">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 3560.5)">
<title>
SchemaCrawler_Diagram
</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-3493.5 4025,-3493.5 4025,4 -4,4" />
<polygon fill="white" stroke="transparent" points="-4,4 -4,-3560.5 4025,-3560.5 4025,4 -4,4" />
<text text-anchor="start" x="3730.5" y="-29.8" font-family="Helvetica,sans-Serif" font-size="14.00">generated by</text>
<text text-anchor="start" x="3813.5" y="-29.8" font-family="Helvetica,sans-Serif" font-size="14.00">SchemaCrawler 16.10.1</text>
<text text-anchor="start" x="3729.5" y="-10.8" font-family="Helvetica,sans-Serif" font-size="14.00">generated on</text>
<text text-anchor="start" x="3813.5" y="-10.8" font-family="Helvetica,sans-Serif" font-size="14.00">2024-05-30 20:54:05.059075326</text>
<text text-anchor="start" x="3813.5" y="-10.8" font-family="Helvetica,sans-Serif" font-size="14.00">2024-06-05 18:34:54.436578672</text>
<polygon fill="none" stroke="#888888" points="3726,-4 3726,-44 4013,-44 4013,-4 3726,-4" /> <!-- allocationtoken_a08ccbef -->
<g id="node1" class="node">
<title>
@@ -487,7 +487,7 @@ td.section {
<polyline fill="none" stroke="black" points="753.47,-831.94 758.44,-831.39 " />
<text text-anchor="start" x="1679" y="-641.3" font-family="Helvetica,sans-Serif" font-size="14.00">fk_billing_event_cancellation_matching_billing_recurrence_id</text>
</g> <!-- registrar_6e1503e3 -->
<g id="node33" class="node">
<g id="node34" class="node">
<title>
registrar_6e1503e3
</title>
@@ -848,7 +848,7 @@ td.section {
<polyline fill="none" stroke="black" points="196.07,-1506.47 200.64,-1504.44 " />
<text text-anchor="start" x="788.5" y="-1233.3" font-family="Helvetica,sans-Serif" font-size="14.00">fk_domain_transfer_losing_registrar_id</text>
</g> <!-- tld_f1fa57e2 -->
<g id="node44" class="node">
<g id="node45" class="node">
<title>
tld_f1fa57e2
</title>
@@ -1235,7 +1235,7 @@ td.section {
<text text-anchor="start" x="1294.5" y="-58.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="1076,-52 1076,-149 1367,-149 1367,-52 1076,-52" />
</g> <!-- user_f2216f01 -->
<g id="node46" class="node">
<g id="node47" class="node">
<title>
user_f2216f01
</title>
@@ -1556,7 +1556,7 @@ td.section {
<polyline fill="none" stroke="black" points="2607.99,-1834.12 2612.97,-1833.75 " />
<text text-anchor="start" x="3087.5" y="-1630.3" font-family="Helvetica,sans-Serif" font-size="14.00">fk_poll_message_host_repo_id</text>
</g> <!-- hosthistory_56210c2 -->
<g id="node27" class="node">
<g id="node28" class="node">
<title>
hosthistory_56210c2
</title>
@@ -2018,6 +2018,19 @@ td.section {
<polygon fill="black" stroke="black" points="2622.92,-871.12 2620.81,-861.35 2622.77,-860.93 2624.87,-870.7 2622.92,-871.12" />
<polyline fill="none" stroke="black" points="2620.89,-866.45 2625.78,-865.39 " />
<text text-anchor="start" x="2703" y="-794.3" font-family="Helvetica,sans-Serif" font-size="14.00">fk7w3cx8d55q8bln80e716tr7b8</text>
</g> <!-- featureflag_3ee43a78 -->
<g id="node27" class="node">
<title>
featureflag_3ee43a78
</title>
<polygon fill="#ebcef2" stroke="transparent" points="3726.5,-2512.5 3726.5,-2531.5 3851.5,-2531.5 3851.5,-2512.5 3726.5,-2512.5" />
<text text-anchor="start" x="3728.5" y="-2519.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.FeatureFlag</text>
<polygon fill="#ebcef2" stroke="transparent" points="3851.5,-2512.5 3851.5,-2531.5 3925.5,-2531.5 3925.5,-2512.5 3851.5,-2512.5" />
<text text-anchor="start" x="3886.5" y="-2518.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3728.5" y="-2500.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">feature_name</text>
<text text-anchor="start" x="3833.5" y="-2499.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3853.5" y="-2499.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3725,-2492.5 3725,-2532.5 3926,-2532.5 3926,-2492.5 3725,-2492.5" />
</g> <!-- hosthistory_56210c2&#45;&gt;host_f21b78de -->
<g id="edge48" class="edge">
<title>
@@ -2045,107 +2058,107 @@ td.section {
<polyline fill="none" stroke="black" points="195.66,-1511.28 199.82,-1514.05 " />
<text text-anchor="start" x="1466.5" y="-1958.3" font-family="Helvetica,sans-Serif" font-size="14.00">fk_history_registrar_id</text>
</g> <!-- lock_f21d4861 -->
<g id="node28" class="node">
<g id="node29" class="node">
<title>
lock_f21d4861
</title>
<polygon fill="#ebcef2" stroke="transparent" points="3732.5,-2530.5 3732.5,-2549.5 3845.5,-2549.5 3845.5,-2530.5 3732.5,-2530.5" />
<text text-anchor="start" x="3734.5" y="-2537.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.Lock</text>
<polygon fill="#ebcef2" stroke="transparent" points="3845.5,-2530.5 3845.5,-2549.5 3919.5,-2549.5 3919.5,-2530.5 3845.5,-2530.5" />
<text text-anchor="start" x="3880.5" y="-2536.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3734.5" y="-2518.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">resource_name</text>
<text text-anchor="start" x="3839.5" y="-2517.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3847.5" y="-2517.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="3734.5" y="-2499.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">"scope"</text>
<text text-anchor="start" x="3839.5" y="-2498.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3847.5" y="-2498.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3731,-2492 3731,-2551 3920,-2551 3920,-2492 3731,-2492" />
<polygon fill="#ebcef2" stroke="transparent" points="3732.5,-2597.5 3732.5,-2616.5 3845.5,-2616.5 3845.5,-2597.5 3732.5,-2597.5" />
<text text-anchor="start" x="3734.5" y="-2604.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.Lock</text>
<polygon fill="#ebcef2" stroke="transparent" points="3845.5,-2597.5 3845.5,-2616.5 3919.5,-2616.5 3919.5,-2597.5 3845.5,-2597.5" />
<text text-anchor="start" x="3880.5" y="-2603.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3734.5" y="-2585.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">resource_name</text>
<text text-anchor="start" x="3839.5" y="-2584.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3847.5" y="-2584.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="3734.5" y="-2566.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">"scope"</text>
<text text-anchor="start" x="3839.5" y="-2565.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3847.5" y="-2565.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3731,-2559 3731,-2618 3920,-2618 3920,-2559 3731,-2559" />
</g> <!-- packagepromotion_56aa33 -->
<g id="node29" class="node">
<g id="node30" class="node">
<title>
packagepromotion_56aa33
</title>
<polygon fill="#ebcef2" stroke="transparent" points="3685.5,-2635.5 3685.5,-2654.5 3856.5,-2654.5 3856.5,-2635.5 3685.5,-2635.5" />
<text text-anchor="start" x="3687.5" y="-2642.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.PackagePromotion</text>
<polygon fill="#ebcef2" stroke="transparent" points="3856.5,-2635.5 3856.5,-2654.5 3966.5,-2654.5 3966.5,-2635.5 3856.5,-2635.5" />
<text text-anchor="start" x="3927.5" y="-2641.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3687.5" y="-2623.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">package_promotion_id</text>
<text text-anchor="start" x="3845.5" y="-2622.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3858.5" y="-2622.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="3845.5" y="-2603.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3858.5" y="-2603.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="3687.5" y="-2584.3" font-family="Helvetica,sans-Serif" font-size="14.00">token</text>
<text text-anchor="start" x="3845.5" y="-2584.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3858.5" y="-2584.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3684,-2577.5 3684,-2655.5 3967,-2655.5 3967,-2577.5 3684,-2577.5" />
<polygon fill="#ebcef2" stroke="transparent" points="3685.5,-2702.5 3685.5,-2721.5 3856.5,-2721.5 3856.5,-2702.5 3685.5,-2702.5" />
<text text-anchor="start" x="3687.5" y="-2709.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.PackagePromotion</text>
<polygon fill="#ebcef2" stroke="transparent" points="3856.5,-2702.5 3856.5,-2721.5 3966.5,-2721.5 3966.5,-2702.5 3856.5,-2702.5" />
<text text-anchor="start" x="3927.5" y="-2708.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3687.5" y="-2690.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">package_promotion_id</text>
<text text-anchor="start" x="3845.5" y="-2689.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3858.5" y="-2689.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="3845.5" y="-2670.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3858.5" y="-2670.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="3687.5" y="-2651.3" font-family="Helvetica,sans-Serif" font-size="14.00">token</text>
<text text-anchor="start" x="3845.5" y="-2651.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3858.5" y="-2651.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3684,-2644.5 3684,-2722.5 3967,-2722.5 3967,-2644.5 3684,-2644.5" />
</g> <!-- premiumentry_b0060b91 -->
<g id="node30" class="node">
<g id="node31" class="node">
<title>
premiumentry_b0060b91
</title>
<polygon fill="#ebcef2" stroke="transparent" points="3717.5,-2720.5 3717.5,-2739.5 3859.5,-2739.5 3859.5,-2720.5 3717.5,-2720.5" />
<text text-anchor="start" x="3719.5" y="-2727.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.PremiumEntry</text>
<polygon fill="#ebcef2" stroke="transparent" points="3859.5,-2720.5 3859.5,-2739.5 3933.5,-2739.5 3933.5,-2720.5 3859.5,-2720.5" />
<text text-anchor="start" x="3894.5" y="-2726.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3719.5" y="-2708.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3832.5" y="-2707.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3861.5" y="-2707.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<text text-anchor="start" x="3719.5" y="-2689.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">domain_label</text>
<text text-anchor="start" x="3832.5" y="-2688.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3861.5" y="-2688.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3716.5,-2682 3716.5,-2741 3934.5,-2741 3934.5,-2682 3716.5,-2682" />
<polygon fill="#ebcef2" stroke="transparent" points="3717.5,-2787.5 3717.5,-2806.5 3859.5,-2806.5 3859.5,-2787.5 3717.5,-2787.5" />
<text text-anchor="start" x="3719.5" y="-2794.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.PremiumEntry</text>
<polygon fill="#ebcef2" stroke="transparent" points="3859.5,-2787.5 3859.5,-2806.5 3933.5,-2806.5 3933.5,-2787.5 3859.5,-2787.5" />
<text text-anchor="start" x="3894.5" y="-2793.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3719.5" y="-2775.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3832.5" y="-2774.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3861.5" y="-2774.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<text text-anchor="start" x="3719.5" y="-2756.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">domain_label</text>
<text text-anchor="start" x="3832.5" y="-2755.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3861.5" y="-2755.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3716.5,-2749 3716.5,-2808 3934.5,-2808 3934.5,-2749 3716.5,-2749" />
</g> <!-- premiumlist_7c3ea68b -->
<g id="node31" class="node">
<g id="node32" class="node">
<title>
premiumlist_7c3ea68b
</title>
<polygon fill="#ebcef2" stroke="transparent" points="3061.5,-2719.5 3061.5,-2738.5 3192.5,-2738.5 3192.5,-2719.5 3061.5,-2719.5" />
<text text-anchor="start" x="3063.5" y="-2726.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.PremiumList</text>
<polygon fill="#ebcef2" stroke="transparent" points="3192.5,-2719.5 3192.5,-2738.5 3302.5,-2738.5 3302.5,-2719.5 3192.5,-2719.5" />
<text text-anchor="start" x="3263.5" y="-2725.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3063.5" y="-2707.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3162.5" y="-2706.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3194.5" y="-2706.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="3162.5" y="-2687.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3194.5" y="-2687.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="3063.5" y="-2668.3" font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
<text text-anchor="start" x="3162.5" y="-2668.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3194.5" y="-2668.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3060,-2661.5 3060,-2739.5 3303,-2739.5 3303,-2661.5 3060,-2661.5" />
<polygon fill="#ebcef2" stroke="transparent" points="3061.5,-2786.5 3061.5,-2805.5 3192.5,-2805.5 3192.5,-2786.5 3061.5,-2786.5" />
<text text-anchor="start" x="3063.5" y="-2793.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.PremiumList</text>
<polygon fill="#ebcef2" stroke="transparent" points="3192.5,-2786.5 3192.5,-2805.5 3302.5,-2805.5 3302.5,-2786.5 3192.5,-2786.5" />
<text text-anchor="start" x="3263.5" y="-2792.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3063.5" y="-2774.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3162.5" y="-2773.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3194.5" y="-2773.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="3162.5" y="-2754.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3194.5" y="-2754.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="3063.5" y="-2735.3" font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
<text text-anchor="start" x="3162.5" y="-2735.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3194.5" y="-2735.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3060,-2728.5 3060,-2806.5 3303,-2806.5 3303,-2728.5 3060,-2728.5" />
</g> <!-- premiumentry_b0060b91&#45;&gt;premiumlist_7c3ea68b -->
<g id="edge52" class="edge">
<title>
premiumentry_b0060b91:w-&gt;premiumlist_7c3ea68b:e
</title>
<path fill="none" stroke="black" d="M3698.41,-2710.5C3532.99,-2710.5 3482.82,-2710.5 3313.75,-2710.5" />
<polygon fill="black" stroke="black" points="3706.5,-2710.5 3716.5,-2715 3711.5,-2710.5 3716.5,-2710.5 3716.5,-2710.5 3716.5,-2710.5 3711.5,-2710.5 3716.5,-2706 3706.5,-2710.5 3706.5,-2710.5" />
<ellipse fill="none" stroke="black" cx="3702.5" cy="-2710.5" rx="4" ry="4" />
<polygon fill="black" stroke="black" points="3304.5,-2715.5 3304.5,-2705.5 3306.5,-2705.5 3306.5,-2715.5 3304.5,-2715.5" />
<polyline fill="none" stroke="black" points="3303.5,-2710.5 3308.5,-2710.5 " />
<polygon fill="black" stroke="black" points="3309.5,-2715.5 3309.5,-2705.5 3311.5,-2705.5 3311.5,-2715.5 3309.5,-2715.5" />
<polyline fill="none" stroke="black" points="3308.5,-2710.5 3313.5,-2710.5 " />
<text text-anchor="start" x="3418" y="-2714.3" font-family="Helvetica,sans-Serif" font-size="14.00">fko0gw90lpo1tuee56l0nb6y6g5</text>
<path fill="none" stroke="black" d="M3698.41,-2777.5C3532.99,-2777.5 3482.82,-2777.5 3313.75,-2777.5" />
<polygon fill="black" stroke="black" points="3706.5,-2777.5 3716.5,-2782 3711.5,-2777.5 3716.5,-2777.5 3716.5,-2777.5 3716.5,-2777.5 3711.5,-2777.5 3716.5,-2773 3706.5,-2777.5 3706.5,-2777.5" />
<ellipse fill="none" stroke="black" cx="3702.5" cy="-2777.5" rx="4" ry="4" />
<polygon fill="black" stroke="black" points="3304.5,-2782.5 3304.5,-2772.5 3306.5,-2772.5 3306.5,-2782.5 3304.5,-2782.5" />
<polyline fill="none" stroke="black" points="3303.5,-2777.5 3308.5,-2777.5 " />
<polygon fill="black" stroke="black" points="3309.5,-2782.5 3309.5,-2772.5 3311.5,-2772.5 3311.5,-2782.5 3309.5,-2782.5" />
<polyline fill="none" stroke="black" points="3308.5,-2777.5 3313.5,-2777.5 " />
<text text-anchor="start" x="3418" y="-2781.3" font-family="Helvetica,sans-Serif" font-size="14.00">fko0gw90lpo1tuee56l0nb6y6g5</text>
</g> <!-- rderevision_83396864 -->
<g id="node32" class="node">
<g id="node33" class="node">
<title>
rderevision_83396864
</title>
<polygon fill="#ebcef2" stroke="transparent" points="3721.5,-2825.5 3721.5,-2844.5 3851.5,-2844.5 3851.5,-2825.5 3721.5,-2825.5" />
<text text-anchor="start" x="3723.5" y="-2832.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.RdeRevision</text>
<polygon fill="#ebcef2" stroke="transparent" points="3851.5,-2825.5 3851.5,-2844.5 3929.5,-2844.5 3929.5,-2825.5 3851.5,-2825.5" />
<text text-anchor="start" x="3890.5" y="-2831.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3723.5" y="-2813.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">tld</text>
<text text-anchor="start" x="3807.5" y="-2812.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3853.5" y="-2812.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="3723.5" y="-2794.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">mode</text>
<text text-anchor="start" x="3807.5" y="-2793.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3853.5" y="-2793.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="3723.5" y="-2775.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">"date"</text>
<text text-anchor="start" x="3807.5" y="-2774.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3853.5" y="-2774.3" font-family="Helvetica,sans-Serif" font-size="14.00">date not null</text>
<polygon fill="none" stroke="#888888" points="3720.5,-2767.5 3720.5,-2845.5 3930.5,-2845.5 3930.5,-2767.5 3720.5,-2767.5" />
<polygon fill="#ebcef2" stroke="transparent" points="3721.5,-2892.5 3721.5,-2911.5 3851.5,-2911.5 3851.5,-2892.5 3721.5,-2892.5" />
<text text-anchor="start" x="3723.5" y="-2899.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.RdeRevision</text>
<polygon fill="#ebcef2" stroke="transparent" points="3851.5,-2892.5 3851.5,-2911.5 3929.5,-2911.5 3929.5,-2892.5 3851.5,-2892.5" />
<text text-anchor="start" x="3890.5" y="-2898.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3723.5" y="-2880.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">tld</text>
<text text-anchor="start" x="3807.5" y="-2879.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3853.5" y="-2879.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="3723.5" y="-2861.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">mode</text>
<text text-anchor="start" x="3807.5" y="-2860.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3853.5" y="-2860.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="3723.5" y="-2842.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">"date"</text>
<text text-anchor="start" x="3807.5" y="-2841.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3853.5" y="-2841.3" font-family="Helvetica,sans-Serif" font-size="14.00">date not null</text>
<polygon fill="none" stroke="#888888" points="3720.5,-2834.5 3720.5,-2912.5 3930.5,-2912.5 3930.5,-2834.5 3720.5,-2834.5" />
</g> <!-- registrarpoc_ab47054d -->
<g id="node34" class="node">
<g id="node35" class="node">
<title>
registrarpoc_ab47054d
</title>
@@ -2177,7 +2190,7 @@ td.section {
<polyline fill="none" stroke="black" points="195.2,-1505.14 198.9,-1501.77 " />
<text text-anchor="start" x="231" y="-488.3" font-family="Helvetica,sans-Serif" font-size="14.00">fk_registrar_poc_registrar_id</text>
</g> <!-- registrarupdatehistory_8a38bed4 -->
<g id="node35" class="node">
<g id="node36" class="node">
<title>
registrarupdatehistory_8a38bed4
</title>
@@ -2222,7 +2235,7 @@ td.section {
<polyline fill="none" stroke="black" points="707.5,-223.71 712.49,-223.93 " />
<text text-anchor="start" x="815.5" y="-277.3" font-family="Helvetica,sans-Serif" font-size="14.00">fksr7w342s7x5s5jvdti2axqeq8</text>
</g> <!-- registrarpocupdatehistory_31e5d9aa -->
<g id="node36" class="node">
<g id="node37" class="node">
<title>
registrarpocupdatehistory_31e5d9aa
</title>
@@ -2283,188 +2296,188 @@ td.section {
<polyline fill="none" stroke="black" points="707.48,-223.95 712.46,-224.41 " />
<text text-anchor="start" x="821.5" y="-390.3" font-family="Helvetica,sans-Serif" font-size="14.00">fkftpbwctxtkc1i0njc0tdcaa2g</text>
</g> <!-- registrylock_ac88663e -->
<g id="node37" class="node">
<g id="node38" class="node">
<title>
registrylock_ac88663e
</title>
<polygon fill="#ebcef2" stroke="transparent" points="3703.5,-2986.5 3703.5,-3005.5 3837.5,-3005.5 3837.5,-2986.5 3703.5,-2986.5" />
<text text-anchor="start" x="3705.5" y="-2993.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.RegistryLock</text>
<polygon fill="#ebcef2" stroke="transparent" points="3837.5,-2986.5 3837.5,-3005.5 3947.5,-3005.5 3947.5,-2986.5 3837.5,-2986.5" />
<text text-anchor="start" x="3908.5" y="-2992.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3705.5" y="-2974.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3824.5" y="-2973.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3839.5" y="-2973.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="3824.5" y="-2954.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3839.5" y="-2954.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="3705.5" y="-2935.3" font-family="Helvetica,sans-Serif" font-size="14.00">registrar_id</text>
<text text-anchor="start" x="3824.5" y="-2935.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3839.5" y="-2935.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="3705.5" y="-2916.3" font-family="Helvetica,sans-Serif" font-size="14.00">repo_id</text>
<text text-anchor="start" x="3824.5" y="-2916.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3839.5" y="-2916.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="3705.5" y="-2897.3" font-family="Helvetica,sans-Serif" font-size="14.00">verification_code</text>
<text text-anchor="start" x="3824.5" y="-2897.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3839.5" y="-2897.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="3705.5" y="-2878.3" font-family="Helvetica,sans-Serif" font-size="14.00">relock_revision_id</text>
<text text-anchor="start" x="3824.5" y="-2878.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3839.5" y="-2878.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8</text>
<polygon fill="none" stroke="#888888" points="3702.5,-2872 3702.5,-3007 3948.5,-3007 3948.5,-2872 3702.5,-2872" />
<polygon fill="#ebcef2" stroke="transparent" points="3703.5,-3053.5 3703.5,-3072.5 3837.5,-3072.5 3837.5,-3053.5 3703.5,-3053.5" />
<text text-anchor="start" x="3705.5" y="-3060.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.RegistryLock</text>
<polygon fill="#ebcef2" stroke="transparent" points="3837.5,-3053.5 3837.5,-3072.5 3947.5,-3072.5 3947.5,-3053.5 3837.5,-3053.5" />
<text text-anchor="start" x="3908.5" y="-3059.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3705.5" y="-3041.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3824.5" y="-3040.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3839.5" y="-3040.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="3824.5" y="-3021.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3839.5" y="-3021.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="3705.5" y="-3002.3" font-family="Helvetica,sans-Serif" font-size="14.00">registrar_id</text>
<text text-anchor="start" x="3824.5" y="-3002.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3839.5" y="-3002.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="3705.5" y="-2983.3" font-family="Helvetica,sans-Serif" font-size="14.00">repo_id</text>
<text text-anchor="start" x="3824.5" y="-2983.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3839.5" y="-2983.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="3705.5" y="-2964.3" font-family="Helvetica,sans-Serif" font-size="14.00">verification_code</text>
<text text-anchor="start" x="3824.5" y="-2964.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3839.5" y="-2964.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="3705.5" y="-2945.3" font-family="Helvetica,sans-Serif" font-size="14.00">relock_revision_id</text>
<text text-anchor="start" x="3824.5" y="-2945.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3839.5" y="-2945.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8</text>
<polygon fill="none" stroke="#888888" points="3702.5,-2939 3702.5,-3074 3948.5,-3074 3948.5,-2939 3702.5,-2939" />
</g> <!-- registrylock_ac88663e&#45;&gt;registrylock_ac88663e -->
<g id="edge80" class="edge">
<title>
registrylock_ac88663e:w-&gt;registrylock_ac88663e:e
</title>
<path fill="none" stroke="black" d="M3687.37,-2889.51C3626.1,-2928.15 3639.88,-3029 3825.5,-3029 4017.38,-3029 4025.63,-3009.16 3957.17,-2981.3" />
<polygon fill="black" stroke="black" points="3694.54,-2885.95 3705.5,-2885.53 3699.02,-2883.72 3703.5,-2881.5 3703.5,-2881.5 3703.5,-2881.5 3699.02,-2883.72 3701.5,-2877.47 3694.54,-2885.95 3694.54,-2885.95" />
<ellipse fill="none" stroke="black" cx="3690.96" cy="-2887.73" rx="4" ry="4" />
<polygon fill="black" stroke="black" points="3946.6,-2982.52 3950.26,-2973.21 3952.12,-2973.94 3948.46,-2983.25 3946.6,-2982.52" />
<polyline fill="none" stroke="black" points="3947.5,-2977.5 3952.15,-2979.33 " />
<polygon fill="black" stroke="black" points="3951.26,-2984.35 3954.91,-2975.04 3956.77,-2975.77 3953.12,-2985.08 3951.26,-2984.35" />
<polyline fill="none" stroke="black" points="3952.15,-2979.33 3956.81,-2981.16 " />
<text text-anchor="start" x="3744" y="-3032.8" font-family="Helvetica,sans-Serif" font-size="14.00">fk2lhcwpxlnqijr96irylrh1707</text>
<path fill="none" stroke="black" d="M3687.37,-2956.51C3626.1,-2995.15 3639.88,-3096 3825.5,-3096 4017.38,-3096 4025.63,-3076.16 3957.17,-3048.3" />
<polygon fill="black" stroke="black" points="3694.54,-2952.95 3705.5,-2952.53 3699.02,-2950.72 3703.5,-2948.5 3703.5,-2948.5 3703.5,-2948.5 3699.02,-2950.72 3701.5,-2944.47 3694.54,-2952.95 3694.54,-2952.95" />
<ellipse fill="none" stroke="black" cx="3690.96" cy="-2954.73" rx="4" ry="4" />
<polygon fill="black" stroke="black" points="3946.6,-3049.52 3950.26,-3040.21 3952.12,-3040.94 3948.46,-3050.25 3946.6,-3049.52" />
<polyline fill="none" stroke="black" points="3947.5,-3044.5 3952.15,-3046.33 " />
<polygon fill="black" stroke="black" points="3951.26,-3051.35 3954.91,-3042.04 3956.77,-3042.77 3953.12,-3052.08 3951.26,-3051.35" />
<polyline fill="none" stroke="black" points="3952.15,-3046.33 3956.81,-3048.16 " />
<text text-anchor="start" x="3744" y="-3099.8" font-family="Helvetica,sans-Serif" font-size="14.00">fk2lhcwpxlnqijr96irylrh1707</text>
</g> <!-- reservedentry_1a7b8520 -->
<g id="node38" class="node">
<g id="node39" class="node">
<title>
reservedentry_1a7b8520
</title>
<polygon fill="#ebcef2" stroke="transparent" points="3717.5,-3104.5 3717.5,-3123.5 3860.5,-3123.5 3860.5,-3104.5 3717.5,-3104.5" />
<text text-anchor="start" x="3719.5" y="-3111.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.ReservedEntry</text>
<polygon fill="#ebcef2" stroke="transparent" points="3860.5,-3104.5 3860.5,-3123.5 3934.5,-3123.5 3934.5,-3104.5 3860.5,-3104.5" />
<text text-anchor="start" x="3895.5" y="-3110.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3719.5" y="-3092.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3832.5" y="-3091.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3862.5" y="-3091.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<text text-anchor="start" x="3719.5" y="-3073.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">domain_label</text>
<text text-anchor="start" x="3832.5" y="-3072.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3862.5" y="-3072.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3716,-3066 3716,-3125 3935,-3125 3935,-3066 3716,-3066" />
<polygon fill="#ebcef2" stroke="transparent" points="3717.5,-3171.5 3717.5,-3190.5 3860.5,-3190.5 3860.5,-3171.5 3717.5,-3171.5" />
<text text-anchor="start" x="3719.5" y="-3178.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.ReservedEntry</text>
<polygon fill="#ebcef2" stroke="transparent" points="3860.5,-3171.5 3860.5,-3190.5 3934.5,-3190.5 3934.5,-3171.5 3860.5,-3171.5" />
<text text-anchor="start" x="3895.5" y="-3177.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3719.5" y="-3159.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3832.5" y="-3158.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3862.5" y="-3158.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<text text-anchor="start" x="3719.5" y="-3140.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">domain_label</text>
<text text-anchor="start" x="3832.5" y="-3139.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3862.5" y="-3139.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3716,-3133 3716,-3192 3935,-3192 3935,-3133 3716,-3133" />
</g> <!-- reservedlist_b97c3f1c -->
<g id="node39" class="node">
<g id="node40" class="node">
<title>
reservedlist_b97c3f1c
</title>
<polygon fill="#ebcef2" stroke="transparent" points="3060.5,-3103.5 3060.5,-3122.5 3193.5,-3122.5 3193.5,-3103.5 3060.5,-3103.5" />
<text text-anchor="start" x="3062.5" y="-3110.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.ReservedList</text>
<polygon fill="#ebcef2" stroke="transparent" points="3193.5,-3103.5 3193.5,-3122.5 3303.5,-3122.5 3303.5,-3103.5 3193.5,-3103.5" />
<text text-anchor="start" x="3264.5" y="-3109.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3062.5" y="-3091.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3162.5" y="-3090.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3195.5" y="-3090.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="3162.5" y="-3071.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3195.5" y="-3071.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="3062.5" y="-3052.3" font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
<text text-anchor="start" x="3162.5" y="-3052.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3195.5" y="-3052.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3059,-3045.5 3059,-3123.5 3304,-3123.5 3304,-3045.5 3059,-3045.5" />
<polygon fill="#ebcef2" stroke="transparent" points="3060.5,-3170.5 3060.5,-3189.5 3193.5,-3189.5 3193.5,-3170.5 3060.5,-3170.5" />
<text text-anchor="start" x="3062.5" y="-3177.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.ReservedList</text>
<polygon fill="#ebcef2" stroke="transparent" points="3193.5,-3170.5 3193.5,-3189.5 3303.5,-3189.5 3303.5,-3170.5 3193.5,-3170.5" />
<text text-anchor="start" x="3264.5" y="-3176.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3062.5" y="-3158.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3162.5" y="-3157.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3195.5" y="-3157.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="3162.5" y="-3138.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3195.5" y="-3138.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="3062.5" y="-3119.3" font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
<text text-anchor="start" x="3162.5" y="-3119.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3195.5" y="-3119.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3059,-3112.5 3059,-3190.5 3304,-3190.5 3304,-3112.5 3059,-3112.5" />
</g> <!-- reservedentry_1a7b8520&#45;&gt;reservedlist_b97c3f1c -->
<g id="edge81" class="edge">
<title>
reservedentry_1a7b8520:w-&gt;reservedlist_b97c3f1c:e
</title>
<path fill="none" stroke="black" d="M3698.45,-3094.5C3533.44,-3094.5 3483.39,-3094.5 3314.72,-3094.5" />
<polygon fill="black" stroke="black" points="3706.5,-3094.5 3716.5,-3099 3711.5,-3094.5 3716.5,-3094.5 3716.5,-3094.5 3716.5,-3094.5 3711.5,-3094.5 3716.5,-3090 3706.5,-3094.5 3706.5,-3094.5" />
<ellipse fill="none" stroke="black" cx="3702.5" cy="-3094.5" rx="4" ry="4" />
<polygon fill="black" stroke="black" points="3305.5,-3099.5 3305.5,-3089.5 3307.5,-3089.5 3307.5,-3099.5 3305.5,-3099.5" />
<polyline fill="none" stroke="black" points="3304.5,-3094.5 3309.5,-3094.5 " />
<polygon fill="black" stroke="black" points="3310.5,-3099.5 3310.5,-3089.5 3312.5,-3089.5 3312.5,-3099.5 3310.5,-3099.5" />
<polyline fill="none" stroke="black" points="3309.5,-3094.5 3314.5,-3094.5 " />
<text text-anchor="start" x="3419.5" y="-3098.3" font-family="Helvetica,sans-Serif" font-size="14.00">fkgq03rk0bt1hb915dnyvd3vnfc</text>
<path fill="none" stroke="black" d="M3698.45,-3161.5C3533.44,-3161.5 3483.39,-3161.5 3314.72,-3161.5" />
<polygon fill="black" stroke="black" points="3706.5,-3161.5 3716.5,-3166 3711.5,-3161.5 3716.5,-3161.5 3716.5,-3161.5 3716.5,-3161.5 3711.5,-3161.5 3716.5,-3157 3706.5,-3161.5 3706.5,-3161.5" />
<ellipse fill="none" stroke="black" cx="3702.5" cy="-3161.5" rx="4" ry="4" />
<polygon fill="black" stroke="black" points="3305.5,-3166.5 3305.5,-3156.5 3307.5,-3156.5 3307.5,-3166.5 3305.5,-3166.5" />
<polyline fill="none" stroke="black" points="3304.5,-3161.5 3309.5,-3161.5 " />
<polygon fill="black" stroke="black" points="3310.5,-3166.5 3310.5,-3156.5 3312.5,-3156.5 3312.5,-3166.5 3310.5,-3166.5" />
<polyline fill="none" stroke="black" points="3309.5,-3161.5 3314.5,-3161.5 " />
<text text-anchor="start" x="3419.5" y="-3165.3" font-family="Helvetica,sans-Serif" font-size="14.00">fkgq03rk0bt1hb915dnyvd3vnfc</text>
</g> <!-- serversecret_6cc90f09 -->
<g id="node40" class="node">
<g id="node41" class="node">
<title>
serversecret_6cc90f09
</title>
<polygon fill="#ebcef2" stroke="transparent" points="3723.5,-3171.5 3723.5,-3190.5 3854.5,-3190.5 3854.5,-3171.5 3723.5,-3171.5" />
<text text-anchor="start" x="3725.5" y="-3178.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.ServerSecret</text>
<polygon fill="#ebcef2" stroke="transparent" points="3854.5,-3171.5 3854.5,-3190.5 3928.5,-3190.5 3928.5,-3171.5 3854.5,-3171.5" />
<text text-anchor="start" x="3889.5" y="-3177.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3725.5" y="-3159.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">id</text>
<text text-anchor="start" x="3795.5" y="-3158.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3856.5" y="-3158.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<polygon fill="none" stroke="#888888" points="3722,-3151.5 3722,-3191.5 3929,-3191.5 3929,-3151.5 3722,-3151.5" />
<polygon fill="#ebcef2" stroke="transparent" points="3723.5,-3238.5 3723.5,-3257.5 3854.5,-3257.5 3854.5,-3238.5 3723.5,-3238.5" />
<text text-anchor="start" x="3725.5" y="-3245.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.ServerSecret</text>
<polygon fill="#ebcef2" stroke="transparent" points="3854.5,-3238.5 3854.5,-3257.5 3928.5,-3257.5 3928.5,-3238.5 3854.5,-3238.5" />
<text text-anchor="start" x="3889.5" y="-3244.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3725.5" y="-3226.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">id</text>
<text text-anchor="start" x="3795.5" y="-3225.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3856.5" y="-3225.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<polygon fill="none" stroke="#888888" points="3722,-3218.5 3722,-3258.5 3929,-3258.5 3929,-3218.5 3722,-3218.5" />
</g> <!-- signedmarkrevocationentry_99c39721 -->
<g id="node41" class="node">
<g id="node42" class="node">
<title>
signedmarkrevocationentry_99c39721
</title>
<polygon fill="#ebcef2" stroke="transparent" points="3672.5,-3256.5 3672.5,-3275.5 3905.5,-3275.5 3905.5,-3256.5 3672.5,-3256.5" />
<text text-anchor="start" x="3674.5" y="-3263.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.SignedMarkRevocationEntry</text>
<polygon fill="#ebcef2" stroke="transparent" points="3905.5,-3256.5 3905.5,-3275.5 3979.5,-3275.5 3979.5,-3256.5 3905.5,-3256.5" />
<text text-anchor="start" x="3940.5" y="-3262.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3674.5" y="-3244.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3824.5" y="-3243.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3907.5" y="-3243.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<text text-anchor="start" x="3674.5" y="-3225.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">smd_id</text>
<text text-anchor="start" x="3824.5" y="-3224.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3907.5" y="-3224.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3671,-3218 3671,-3277 3980,-3277 3980,-3218 3671,-3218" />
<polygon fill="#ebcef2" stroke="transparent" points="3672.5,-3323.5 3672.5,-3342.5 3905.5,-3342.5 3905.5,-3323.5 3672.5,-3323.5" />
<text text-anchor="start" x="3674.5" y="-3330.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.SignedMarkRevocationEntry</text>
<polygon fill="#ebcef2" stroke="transparent" points="3905.5,-3323.5 3905.5,-3342.5 3979.5,-3342.5 3979.5,-3323.5 3905.5,-3323.5" />
<text text-anchor="start" x="3940.5" y="-3329.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3674.5" y="-3311.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3824.5" y="-3310.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3907.5" y="-3310.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<text text-anchor="start" x="3674.5" y="-3292.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">smd_id</text>
<text text-anchor="start" x="3824.5" y="-3291.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3907.5" y="-3291.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3671,-3285 3671,-3344 3980,-3344 3980,-3285 3671,-3285" />
</g> <!-- signedmarkrevocationlist_c5d968fb -->
<g id="node42" class="node">
<g id="node43" class="node">
<title>
signedmarkrevocationlist_c5d968fb
</title>
<polygon fill="#ebcef2" stroke="transparent" points="3015.5,-3256.5 3015.5,-3275.5 3237.5,-3275.5 3237.5,-3256.5 3015.5,-3256.5" />
<text text-anchor="start" x="3017.5" y="-3263.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.SignedMarkRevocationList</text>
<polygon fill="#ebcef2" stroke="transparent" points="3237.5,-3256.5 3237.5,-3275.5 3347.5,-3275.5 3347.5,-3256.5 3237.5,-3256.5" />
<text text-anchor="start" x="3308.5" y="-3262.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3017.5" y="-3244.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3162.5" y="-3243.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3239.5" y="-3243.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="3162.5" y="-3224.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3239.5" y="-3224.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<polygon fill="none" stroke="#888888" points="3014.5,-3218 3014.5,-3277 3348.5,-3277 3348.5,-3218 3014.5,-3218" />
<polygon fill="#ebcef2" stroke="transparent" points="3015.5,-3323.5 3015.5,-3342.5 3237.5,-3342.5 3237.5,-3323.5 3015.5,-3323.5" />
<text text-anchor="start" x="3017.5" y="-3330.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.SignedMarkRevocationList</text>
<polygon fill="#ebcef2" stroke="transparent" points="3237.5,-3323.5 3237.5,-3342.5 3347.5,-3342.5 3347.5,-3323.5 3237.5,-3323.5" />
<text text-anchor="start" x="3308.5" y="-3329.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3017.5" y="-3311.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3162.5" y="-3310.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3239.5" y="-3310.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="3162.5" y="-3291.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3239.5" y="-3291.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<polygon fill="none" stroke="#888888" points="3014.5,-3285 3014.5,-3344 3348.5,-3344 3348.5,-3285 3014.5,-3285" />
</g> <!-- signedmarkrevocationentry_99c39721&#45;&gt;signedmarkrevocationlist_c5d968fb -->
<g id="edge82" class="edge">
<title>
signedmarkrevocationentry_99c39721:w-&gt;signedmarkrevocationlist_c5d968fb:e
</title>
<path fill="none" stroke="black" d="M3653.18,-3246.5C3527.85,-3246.5 3487.78,-3246.5 3358.77,-3246.5" />
<polygon fill="black" stroke="black" points="3661.5,-3246.5 3671.5,-3251 3666.5,-3246.5 3671.5,-3246.5 3671.5,-3246.5 3671.5,-3246.5 3666.5,-3246.5 3671.5,-3242 3661.5,-3246.5 3661.5,-3246.5" />
<ellipse fill="none" stroke="black" cx="3657.5" cy="-3246.5" rx="4" ry="4" />
<polygon fill="black" stroke="black" points="3349.5,-3251.5 3349.5,-3241.5 3351.5,-3241.5 3351.5,-3251.5 3349.5,-3251.5" />
<polyline fill="none" stroke="black" points="3348.5,-3246.5 3353.5,-3246.5 " />
<polygon fill="black" stroke="black" points="3354.5,-3251.5 3354.5,-3241.5 3356.5,-3241.5 3356.5,-3251.5 3354.5,-3251.5" />
<polyline fill="none" stroke="black" points="3353.5,-3246.5 3358.5,-3246.5 " />
<text text-anchor="start" x="3428.5" y="-3250.3" font-family="Helvetica,sans-Serif" font-size="14.00">fk5ivlhvs3121yx2li5tqh54u4</text>
<path fill="none" stroke="black" d="M3653.18,-3313.5C3527.85,-3313.5 3487.78,-3313.5 3358.77,-3313.5" />
<polygon fill="black" stroke="black" points="3661.5,-3313.5 3671.5,-3318 3666.5,-3313.5 3671.5,-3313.5 3671.5,-3313.5 3671.5,-3313.5 3666.5,-3313.5 3671.5,-3309 3661.5,-3313.5 3661.5,-3313.5" />
<ellipse fill="none" stroke="black" cx="3657.5" cy="-3313.5" rx="4" ry="4" />
<polygon fill="black" stroke="black" points="3349.5,-3318.5 3349.5,-3308.5 3351.5,-3308.5 3351.5,-3318.5 3349.5,-3318.5" />
<polyline fill="none" stroke="black" points="3348.5,-3313.5 3353.5,-3313.5 " />
<polygon fill="black" stroke="black" points="3354.5,-3318.5 3354.5,-3308.5 3356.5,-3308.5 3356.5,-3318.5 3354.5,-3318.5" />
<polyline fill="none" stroke="black" points="3353.5,-3313.5 3358.5,-3313.5 " />
<text text-anchor="start" x="3428.5" y="-3317.3" font-family="Helvetica,sans-Serif" font-size="14.00">fk5ivlhvs3121yx2li5tqh54u4</text>
</g> <!-- spec11threatmatch_a61228a6 -->
<g id="node43" class="node">
<g id="node44" class="node">
<title>
spec11threatmatch_a61228a6
</title>
<polygon fill="#ebcef2" stroke="transparent" points="3682.5,-3399.5 3682.5,-3418.5 3858.5,-3418.5 3858.5,-3399.5 3682.5,-3399.5" />
<text text-anchor="start" x="3684.5" y="-3406.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.Spec11ThreatMatch</text>
<polygon fill="#ebcef2" stroke="transparent" points="3858.5,-3399.5 3858.5,-3418.5 3968.5,-3418.5 3968.5,-3399.5 3858.5,-3399.5" />
<text text-anchor="start" x="3929.5" y="-3405.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3684.5" y="-3387.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">id</text>
<text text-anchor="start" x="3805.5" y="-3386.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3860.5" y="-3386.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="3805.5" y="-3367.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3860.5" y="-3367.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="3684.5" y="-3348.3" font-family="Helvetica,sans-Serif" font-size="14.00">check_date</text>
<text text-anchor="start" x="3805.5" y="-3348.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3860.5" y="-3348.3" font-family="Helvetica,sans-Serif" font-size="14.00">date not null</text>
<text text-anchor="start" x="3684.5" y="-3329.3" font-family="Helvetica,sans-Serif" font-size="14.00">registrar_id</text>
<text text-anchor="start" x="3805.5" y="-3329.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3860.5" y="-3329.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="3684.5" y="-3310.3" font-family="Helvetica,sans-Serif" font-size="14.00">tld</text>
<text text-anchor="start" x="3805.5" y="-3310.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3860.5" y="-3310.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3681.5,-3303.5 3681.5,-3419.5 3969.5,-3419.5 3969.5,-3303.5 3681.5,-3303.5" />
<polygon fill="#ebcef2" stroke="transparent" points="3682.5,-3466.5 3682.5,-3485.5 3858.5,-3485.5 3858.5,-3466.5 3682.5,-3466.5" />
<text text-anchor="start" x="3684.5" y="-3473.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.Spec11ThreatMatch</text>
<polygon fill="#ebcef2" stroke="transparent" points="3858.5,-3466.5 3858.5,-3485.5 3968.5,-3485.5 3968.5,-3466.5 3858.5,-3466.5" />
<text text-anchor="start" x="3929.5" y="-3472.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3684.5" y="-3454.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">id</text>
<text text-anchor="start" x="3805.5" y="-3453.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3860.5" y="-3453.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="3805.5" y="-3434.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3860.5" y="-3434.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="3684.5" y="-3415.3" font-family="Helvetica,sans-Serif" font-size="14.00">check_date</text>
<text text-anchor="start" x="3805.5" y="-3415.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3860.5" y="-3415.3" font-family="Helvetica,sans-Serif" font-size="14.00">date not null</text>
<text text-anchor="start" x="3684.5" y="-3396.3" font-family="Helvetica,sans-Serif" font-size="14.00">registrar_id</text>
<text text-anchor="start" x="3805.5" y="-3396.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3860.5" y="-3396.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="3684.5" y="-3377.3" font-family="Helvetica,sans-Serif" font-size="14.00">tld</text>
<text text-anchor="start" x="3805.5" y="-3377.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3860.5" y="-3377.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3681.5,-3370.5 3681.5,-3486.5 3969.5,-3486.5 3969.5,-3370.5 3681.5,-3370.5" />
</g> <!-- tmchcrl_d282355 -->
<g id="node45" class="node">
<g id="node46" class="node">
<title>
tmchcrl_d282355
</title>
<polygon fill="#ebcef2" stroke="transparent" points="3736.5,-3465.5 3736.5,-3484.5 3840.5,-3484.5 3840.5,-3465.5 3736.5,-3465.5" />
<text text-anchor="start" x="3738.5" y="-3472.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.TmchCrl</text>
<polygon fill="#ebcef2" stroke="transparent" points="3840.5,-3465.5 3840.5,-3484.5 3914.5,-3484.5 3914.5,-3465.5 3840.5,-3465.5" />
<text text-anchor="start" x="3875.5" y="-3471.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3738.5" y="-3453.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">id</text>
<text text-anchor="start" x="3794.5" y="-3452.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3842.5" y="-3452.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<polygon fill="none" stroke="#888888" points="3735.5,-3445.5 3735.5,-3485.5 3915.5,-3485.5 3915.5,-3445.5 3735.5,-3445.5" />
<polygon fill="#ebcef2" stroke="transparent" points="3736.5,-3532.5 3736.5,-3551.5 3840.5,-3551.5 3840.5,-3532.5 3736.5,-3532.5" />
<text text-anchor="start" x="3738.5" y="-3539.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.TmchCrl</text>
<polygon fill="#ebcef2" stroke="transparent" points="3840.5,-3532.5 3840.5,-3551.5 3914.5,-3551.5 3914.5,-3532.5 3840.5,-3532.5" />
<text text-anchor="start" x="3875.5" y="-3538.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3738.5" y="-3520.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">id</text>
<text text-anchor="start" x="3794.5" y="-3519.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3842.5" y="-3519.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<polygon fill="none" stroke="#888888" points="3735.5,-3512.5 3735.5,-3552.5 3915.5,-3552.5 3915.5,-3512.5 3735.5,-3512.5" />
</g> <!-- userupdatehistory_24efd476 -->
<g id="node47" class="node">
<g id="node48" class="node">
<title>
userupdatehistory_24efd476
</title>
@@ -4840,6 +4853,37 @@ td.section {
</tbody>
</table>
<p>&nbsp;</p>
<table>
<caption style="background-color: #EBCEF2;">
<span id="featureflag_3ee43a78" class="caption_name">public.FeatureFlag</span> <span class="caption_description">[table]</span>
</caption>
<tbody>
<tr>
<td class="spacer"></td>
<td class="minwidth"><b><i>feature_name</i></b></td>
<td class="minwidth">text not null</td>
</tr>
<tr>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="3" class="section">Primary Key</td>
</tr>
<tr>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2" class="name">FeatureFlag_pkey</td>
<td class="description right">[primary key]</td>
</tr>
<tr>
<td class="spacer"></td>
<td class="minwidth">feature_name</td>
<td class="minwidth"></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<table>
<caption style="background-color: #EBCEF2;">
<span id="graceperiod_cd3b2e8f" class="caption_name">public.GracePeriod</span> <span class="caption_description">[table]</span>

View File

@@ -261,26 +261,26 @@ td.section {
</tr>
<tr>
<td class="property_name">generated on</td>
<td class="property_value">2024-05-30 20:54:02.185428801</td>
<td class="property_value">2024-06-05 18:34:52.170849945</td>
</tr>
<tr>
<td class="property_name">last flyway file</td>
<td id="lastFlywayFile" class="property_value">V172__allocation_token_renewal_price.sql</td>
<td id="lastFlywayFile" class="property_value">V173__create_feature_flag_table.sql</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<svg viewBox="0.00 0.00 4742.00 9331.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="erDiagram" style="overflow: hidden; width: 100%; height: 800px">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 9327)">
<svg viewBox="0.00 0.00 4742.00 9416.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="erDiagram" style="overflow: hidden; width: 100%; height: 800px">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 9412)">
<title>
SchemaCrawler_Diagram
</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-9327 4738,-9327 4738,4 -4,4" />
<polygon fill="white" stroke="transparent" points="-4,4 -4,-9412 4738,-9412 4738,4 -4,4" />
<text text-anchor="start" x="4443.5" y="-29.8" font-family="Helvetica,sans-Serif" font-size="14.00">generated by</text>
<text text-anchor="start" x="4526.5" y="-29.8" font-family="Helvetica,sans-Serif" font-size="14.00">SchemaCrawler 16.10.1</text>
<text text-anchor="start" x="4442.5" y="-10.8" font-family="Helvetica,sans-Serif" font-size="14.00">generated on</text>
<text text-anchor="start" x="4526.5" y="-10.8" font-family="Helvetica,sans-Serif" font-size="14.00">2024-05-30 20:54:02.185428801</text>
<text text-anchor="start" x="4526.5" y="-10.8" font-family="Helvetica,sans-Serif" font-size="14.00">2024-06-05 18:34:52.170849945</text>
<polygon fill="none" stroke="#888888" points="4439,-4 4439,-44 4726,-44 4726,-4 4439,-4" /> <!-- allocationtoken_a08ccbef -->
<g id="node1" class="node">
<title>
@@ -745,7 +745,7 @@ td.section {
<polyline fill="none" stroke="black" points="1019,-2782.41 1024,-2782.32 " />
<text text-anchor="start" x="2109.5" y="-2314.3" font-family="Helvetica,sans-Serif" font-size="14.00">fk_billing_event_cancellation_matching_billing_recurrence_id</text>
</g> <!-- registrar_6e1503e3 -->
<g id="node33" class="node">
<g id="node34" class="node">
<title>
registrar_6e1503e3
</title>
@@ -1487,7 +1487,7 @@ td.section {
<polyline fill="none" stroke="black" points="447.29,-5347.74 450.58,-5343.97 " />
<text text-anchor="start" x="1066.5" y="-4286.3" font-family="Helvetica,sans-Serif" font-size="14.00">fk_domain_transfer_losing_registrar_id</text>
</g> <!-- tld_f1fa57e2 -->
<g id="node44" class="node">
<g id="node45" class="node">
<title>
tld_f1fa57e2
</title>
@@ -2063,7 +2063,7 @@ td.section {
<text text-anchor="start" x="1607" y="-58.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="1388.5,-52 1388.5,-263 1731.5,-263 1731.5,-52 1388.5,-52" />
</g> <!-- user_f2216f01 -->
<g id="node46" class="node">
<g id="node47" class="node">
<title>
user_f2216f01
</title>
@@ -2663,7 +2663,7 @@ td.section {
<polyline fill="none" stroke="black" points="3130,-5780.29 3134.99,-5780.09 " />
<text text-anchor="start" x="3717.5" y="-5455.3" font-family="Helvetica,sans-Serif" font-size="14.00">fk_poll_message_host_repo_id</text>
</g> <!-- hosthistory_56210c2 -->
<g id="node27" class="node">
<g id="node28" class="node">
<title>
hosthistory_56210c2
</title>
@@ -3236,6 +3236,22 @@ td.section {
<polygon fill="black" stroke="black" points="3205.78,-3520.2 3200.09,-3511.98 3201.74,-3510.84 3207.42,-3519.07 3205.78,-3520.2" />
<polyline fill="none" stroke="black" points="3202.11,-3516.66 3206.23,-3513.82 " />
<text text-anchor="start" x="3309" y="-3136.3" font-family="Helvetica,sans-Serif" font-size="14.00">fk7w3cx8d55q8bln80e716tr7b8</text>
</g> <!-- featureflag_3ee43a78 -->
<g id="node27" class="node">
<title>
featureflag_3ee43a78
</title>
<polygon fill="#ebcef2" stroke="transparent" points="4385,-7795.5 4385,-7814.5 4510,-7814.5 4510,-7795.5 4385,-7795.5" />
<text text-anchor="start" x="4387" y="-7802.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.FeatureFlag</text>
<polygon fill="#ebcef2" stroke="transparent" points="4510,-7795.5 4510,-7814.5 4610,-7814.5 4610,-7795.5 4510,-7795.5" />
<text text-anchor="start" x="4571" y="-7801.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4387" y="-7783.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">feature_name</text>
<text text-anchor="start" x="4492" y="-7782.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4512" y="-7782.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4387" y="-7763.3" font-family="Helvetica,sans-Serif" font-size="14.00">status</text>
<text text-anchor="start" x="4492" y="-7763.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4512" y="-7763.3" font-family="Helvetica,sans-Serif" font-size="14.00">"hstore" not null</text>
<polygon fill="none" stroke="#888888" points="4383.5,-7757 4383.5,-7816 4610.5,-7816 4610.5,-7757 4383.5,-7757" />
</g> <!-- hosthistory_56210c2&#45;&gt;host_f21b78de -->
<g id="edge48" class="edge">
<title>
@@ -3263,149 +3279,149 @@ td.section {
<polyline fill="none" stroke="black" points="448.27,-5354.11 452.53,-5356.71 " />
<text text-anchor="start" x="1865.5" y="-5846.3" font-family="Helvetica,sans-Serif" font-size="14.00">fk_history_registrar_id</text>
</g> <!-- lock_f21d4861 -->
<g id="node28" class="node">
<g id="node29" class="node">
<title>
lock_f21d4861
</title>
<polygon fill="#ebcef2" stroke="transparent" points="4378,-7833.5 4378,-7852.5 4491,-7852.5 4491,-7833.5 4378,-7833.5" />
<text text-anchor="start" x="4380" y="-7840.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.Lock</text>
<polygon fill="#ebcef2" stroke="transparent" points="4491,-7833.5 4491,-7852.5 4617,-7852.5 4617,-7833.5 4491,-7833.5" />
<text text-anchor="start" x="4578" y="-7839.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4380" y="-7821.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">resource_name</text>
<text text-anchor="start" x="4485" y="-7820.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4493" y="-7820.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4380" y="-7802.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">"scope"</text>
<text text-anchor="start" x="4485" y="-7801.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4493" y="-7801.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4380" y="-7782.3" font-family="Helvetica,sans-Serif" font-size="14.00">acquired_time</text>
<text text-anchor="start" x="4485" y="-7782.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4493" y="-7782.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz not null</text>
<text text-anchor="start" x="4380" y="-7763.3" font-family="Helvetica,sans-Serif" font-size="14.00">expiration_time</text>
<text text-anchor="start" x="4485" y="-7763.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4493" y="-7763.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz not null</text>
<polygon fill="none" stroke="#888888" points="4376.5,-7757 4376.5,-7854 4617.5,-7854 4617.5,-7757 4376.5,-7757" />
<polygon fill="#ebcef2" stroke="transparent" points="4378,-7918.5 4378,-7937.5 4491,-7937.5 4491,-7918.5 4378,-7918.5" />
<text text-anchor="start" x="4380" y="-7925.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.Lock</text>
<polygon fill="#ebcef2" stroke="transparent" points="4491,-7918.5 4491,-7937.5 4617,-7937.5 4617,-7918.5 4491,-7918.5" />
<text text-anchor="start" x="4578" y="-7924.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4380" y="-7906.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">resource_name</text>
<text text-anchor="start" x="4485" y="-7905.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4493" y="-7905.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4380" y="-7887.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">"scope"</text>
<text text-anchor="start" x="4485" y="-7886.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4493" y="-7886.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4380" y="-7867.3" font-family="Helvetica,sans-Serif" font-size="14.00">acquired_time</text>
<text text-anchor="start" x="4485" y="-7867.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4493" y="-7867.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz not null</text>
<text text-anchor="start" x="4380" y="-7848.3" font-family="Helvetica,sans-Serif" font-size="14.00">expiration_time</text>
<text text-anchor="start" x="4485" y="-7848.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4493" y="-7848.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz not null</text>
<polygon fill="none" stroke="#888888" points="4376.5,-7842 4376.5,-7939 4617.5,-7939 4617.5,-7842 4376.5,-7842" />
</g> <!-- packagepromotion_56aa33 -->
<g id="node29" class="node">
<g id="node30" class="node">
<title>
packagepromotion_56aa33
</title>
<polygon fill="#ebcef2" stroke="transparent" points="4342,-8052.5 4342,-8071.5 4513,-8071.5 4513,-8052.5 4342,-8052.5" />
<text text-anchor="start" x="4344" y="-8059.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.PackagePromotion</text>
<polygon fill="#ebcef2" stroke="transparent" points="4513,-8052.5 4513,-8071.5 4653,-8071.5 4653,-8052.5 4513,-8052.5" />
<text text-anchor="start" x="4614" y="-8058.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4344" y="-8040.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">package_promotion_id</text>
<text text-anchor="start" x="4502" y="-8039.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4515" y="-8039.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="4502" y="-8020.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4515" y="-8020.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="4344" y="-8001.3" font-family="Helvetica,sans-Serif" font-size="14.00">last_notification_sent</text>
<text text-anchor="start" x="4502" y="-8001.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4515" y="-8001.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz</text>
<text text-anchor="start" x="4344" y="-7982.3" font-family="Helvetica,sans-Serif" font-size="14.00">max_creates</text>
<text text-anchor="start" x="4502" y="-7982.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4515" y="-7982.3" font-family="Helvetica,sans-Serif" font-size="14.00">int4 not null</text>
<text text-anchor="start" x="4344" y="-7963.3" font-family="Helvetica,sans-Serif" font-size="14.00">max_domains</text>
<text text-anchor="start" x="4502" y="-7963.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4515" y="-7963.3" font-family="Helvetica,sans-Serif" font-size="14.00">int4 not null</text>
<text text-anchor="start" x="4344" y="-7944.3" font-family="Helvetica,sans-Serif" font-size="14.00">next_billing_date</text>
<text text-anchor="start" x="4502" y="-7944.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4515" y="-7944.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz not null</text>
<text text-anchor="start" x="4344" y="-7925.3" font-family="Helvetica,sans-Serif" font-size="14.00">package_price_amount</text>
<text text-anchor="start" x="4502" y="-7925.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4515" y="-7925.3" font-family="Helvetica,sans-Serif" font-size="14.00">numeric(19, 2) not null</text>
<text text-anchor="start" x="4344" y="-7906.3" font-family="Helvetica,sans-Serif" font-size="14.00">package_price_currency</text>
<text text-anchor="start" x="4502" y="-7906.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4515" y="-7906.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4344" y="-7887.3" font-family="Helvetica,sans-Serif" font-size="14.00">token</text>
<text text-anchor="start" x="4502" y="-7887.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4515" y="-7887.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="4340.5,-7880.5 4340.5,-8072.5 4653.5,-8072.5 4653.5,-7880.5 4340.5,-7880.5" />
<polygon fill="#ebcef2" stroke="transparent" points="4342,-8137.5 4342,-8156.5 4513,-8156.5 4513,-8137.5 4342,-8137.5" />
<text text-anchor="start" x="4344" y="-8144.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.PackagePromotion</text>
<polygon fill="#ebcef2" stroke="transparent" points="4513,-8137.5 4513,-8156.5 4653,-8156.5 4653,-8137.5 4513,-8137.5" />
<text text-anchor="start" x="4614" y="-8143.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4344" y="-8125.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">package_promotion_id</text>
<text text-anchor="start" x="4502" y="-8124.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4515" y="-8124.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="4502" y="-8105.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4515" y="-8105.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="4344" y="-8086.3" font-family="Helvetica,sans-Serif" font-size="14.00">last_notification_sent</text>
<text text-anchor="start" x="4502" y="-8086.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4515" y="-8086.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz</text>
<text text-anchor="start" x="4344" y="-8067.3" font-family="Helvetica,sans-Serif" font-size="14.00">max_creates</text>
<text text-anchor="start" x="4502" y="-8067.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4515" y="-8067.3" font-family="Helvetica,sans-Serif" font-size="14.00">int4 not null</text>
<text text-anchor="start" x="4344" y="-8048.3" font-family="Helvetica,sans-Serif" font-size="14.00">max_domains</text>
<text text-anchor="start" x="4502" y="-8048.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4515" y="-8048.3" font-family="Helvetica,sans-Serif" font-size="14.00">int4 not null</text>
<text text-anchor="start" x="4344" y="-8029.3" font-family="Helvetica,sans-Serif" font-size="14.00">next_billing_date</text>
<text text-anchor="start" x="4502" y="-8029.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4515" y="-8029.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz not null</text>
<text text-anchor="start" x="4344" y="-8010.3" font-family="Helvetica,sans-Serif" font-size="14.00">package_price_amount</text>
<text text-anchor="start" x="4502" y="-8010.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4515" y="-8010.3" font-family="Helvetica,sans-Serif" font-size="14.00">numeric(19, 2) not null</text>
<text text-anchor="start" x="4344" y="-7991.3" font-family="Helvetica,sans-Serif" font-size="14.00">package_price_currency</text>
<text text-anchor="start" x="4502" y="-7991.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4515" y="-7991.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4344" y="-7972.3" font-family="Helvetica,sans-Serif" font-size="14.00">token</text>
<text text-anchor="start" x="4502" y="-7972.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4515" y="-7972.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="4340.5,-7965.5 4340.5,-8157.5 4653.5,-8157.5 4653.5,-7965.5 4340.5,-7965.5" />
</g> <!-- premiumentry_b0060b91 -->
<g id="node30" class="node">
<g id="node31" class="node">
<title>
premiumentry_b0060b91
</title>
<polygon fill="#ebcef2" stroke="transparent" points="4356,-8156.5 4356,-8175.5 4498,-8175.5 4498,-8156.5 4356,-8156.5" />
<text text-anchor="start" x="4358" y="-8163.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.PremiumEntry</text>
<polygon fill="#ebcef2" stroke="transparent" points="4498,-8156.5 4498,-8175.5 4638,-8175.5 4638,-8156.5 4498,-8156.5" />
<text text-anchor="start" x="4599" y="-8162.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4358" y="-8144.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="4471" y="-8143.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4500" y="-8143.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<text text-anchor="start" x="4358" y="-8124.3" font-family="Helvetica,sans-Serif" font-size="14.00">price</text>
<text text-anchor="start" x="4471" y="-8124.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4500" y="-8124.3" font-family="Helvetica,sans-Serif" font-size="14.00">numeric(19, 2) not null</text>
<text text-anchor="start" x="4358" y="-8106.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">domain_label</text>
<text text-anchor="start" x="4471" y="-8105.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4500" y="-8105.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="4355,-8098.5 4355,-8176.5 4639,-8176.5 4639,-8098.5 4355,-8098.5" />
<polygon fill="#ebcef2" stroke="transparent" points="4356,-8241.5 4356,-8260.5 4498,-8260.5 4498,-8241.5 4356,-8241.5" />
<text text-anchor="start" x="4358" y="-8248.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.PremiumEntry</text>
<polygon fill="#ebcef2" stroke="transparent" points="4498,-8241.5 4498,-8260.5 4638,-8260.5 4638,-8241.5 4498,-8241.5" />
<text text-anchor="start" x="4599" y="-8247.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4358" y="-8229.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="4471" y="-8228.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4500" y="-8228.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<text text-anchor="start" x="4358" y="-8209.3" font-family="Helvetica,sans-Serif" font-size="14.00">price</text>
<text text-anchor="start" x="4471" y="-8209.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4500" y="-8209.3" font-family="Helvetica,sans-Serif" font-size="14.00">numeric(19, 2) not null</text>
<text text-anchor="start" x="4358" y="-8191.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">domain_label</text>
<text text-anchor="start" x="4471" y="-8190.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4500" y="-8190.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="4355,-8183.5 4355,-8261.5 4639,-8261.5 4639,-8183.5 4355,-8183.5" />
</g> <!-- premiumlist_7c3ea68b -->
<g id="node31" class="node">
<g id="node32" class="node">
<title>
premiumlist_7c3ea68b
</title>
<polygon fill="#ebcef2" stroke="transparent" points="3690.5,-8156.5 3690.5,-8175.5 3822.5,-8175.5 3822.5,-8156.5 3690.5,-8156.5" />
<text text-anchor="start" x="3692.5" y="-8163.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.PremiumList</text>
<polygon fill="#ebcef2" stroke="transparent" points="3822.5,-8156.5 3822.5,-8175.5 3932.5,-8175.5 3932.5,-8156.5 3822.5,-8156.5" />
<text text-anchor="start" x="3893.5" y="-8162.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3692.5" y="-8144.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3816.5" y="-8143.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3824.5" y="-8143.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="3816.5" y="-8124.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3824.5" y="-8124.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="3692.5" y="-8105.3" font-family="Helvetica,sans-Serif" font-size="14.00">creation_timestamp</text>
<text text-anchor="start" x="3816.5" y="-8105.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3824.5" y="-8105.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz</text>
<text text-anchor="start" x="3692.5" y="-8086.3" font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
<text text-anchor="start" x="3816.5" y="-8086.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3824.5" y="-8086.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="3692.5" y="-8067.3" font-family="Helvetica,sans-Serif" font-size="14.00">bloom_filter</text>
<text text-anchor="start" x="3816.5" y="-8067.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3824.5" y="-8067.3" font-family="Helvetica,sans-Serif" font-size="14.00">bytea not null</text>
<text text-anchor="start" x="3692.5" y="-8048.3" font-family="Helvetica,sans-Serif" font-size="14.00">currency</text>
<text text-anchor="start" x="3816.5" y="-8048.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3824.5" y="-8048.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3689.5,-8042 3689.5,-8177 3933.5,-8177 3933.5,-8042 3689.5,-8042" />
<polygon fill="#ebcef2" stroke="transparent" points="3690.5,-8241.5 3690.5,-8260.5 3822.5,-8260.5 3822.5,-8241.5 3690.5,-8241.5" />
<text text-anchor="start" x="3692.5" y="-8248.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.PremiumList</text>
<polygon fill="#ebcef2" stroke="transparent" points="3822.5,-8241.5 3822.5,-8260.5 3932.5,-8260.5 3932.5,-8241.5 3822.5,-8241.5" />
<text text-anchor="start" x="3893.5" y="-8247.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3692.5" y="-8229.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3816.5" y="-8228.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3824.5" y="-8228.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="3816.5" y="-8209.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3824.5" y="-8209.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="3692.5" y="-8190.3" font-family="Helvetica,sans-Serif" font-size="14.00">creation_timestamp</text>
<text text-anchor="start" x="3816.5" y="-8190.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3824.5" y="-8190.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz</text>
<text text-anchor="start" x="3692.5" y="-8171.3" font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
<text text-anchor="start" x="3816.5" y="-8171.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3824.5" y="-8171.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="3692.5" y="-8152.3" font-family="Helvetica,sans-Serif" font-size="14.00">bloom_filter</text>
<text text-anchor="start" x="3816.5" y="-8152.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3824.5" y="-8152.3" font-family="Helvetica,sans-Serif" font-size="14.00">bytea not null</text>
<text text-anchor="start" x="3692.5" y="-8133.3" font-family="Helvetica,sans-Serif" font-size="14.00">currency</text>
<text text-anchor="start" x="3816.5" y="-8133.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3824.5" y="-8133.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3689.5,-8127 3689.5,-8262 3933.5,-8262 3933.5,-8127 3689.5,-8127" />
</g> <!-- premiumentry_b0060b91&#45;&gt;premiumlist_7c3ea68b -->
<g id="edge52" class="edge">
<title>
premiumentry_b0060b91:w-&gt;premiumlist_7c3ea68b:e
</title>
<path fill="none" stroke="black" d="M4336.79,-8147.5C4167.68,-8147.5 4116.55,-8147.5 3943.71,-8147.5" />
<polygon fill="black" stroke="black" points="4345,-8147.5 4355,-8152 4350,-8147.5 4355,-8147.5 4355,-8147.5 4355,-8147.5 4350,-8147.5 4355,-8143 4345,-8147.5 4345,-8147.5" />
<ellipse fill="none" stroke="black" cx="4341" cy="-8147.5" rx="4" ry="4" />
<polygon fill="black" stroke="black" points="3934.5,-8152.5 3934.5,-8142.5 3936.5,-8142.5 3936.5,-8152.5 3934.5,-8152.5" />
<polyline fill="none" stroke="black" points="3933.5,-8147.5 3938.5,-8147.5 " />
<polygon fill="black" stroke="black" points="3939.5,-8152.5 3939.5,-8142.5 3941.5,-8142.5 3941.5,-8152.5 3939.5,-8152.5" />
<polyline fill="none" stroke="black" points="3938.5,-8147.5 3943.5,-8147.5 " />
<text text-anchor="start" x="4048" y="-8151.3" font-family="Helvetica,sans-Serif" font-size="14.00">fko0gw90lpo1tuee56l0nb6y6g5</text>
<path fill="none" stroke="black" d="M4336.79,-8232.5C4167.68,-8232.5 4116.55,-8232.5 3943.71,-8232.5" />
<polygon fill="black" stroke="black" points="4345,-8232.5 4355,-8237 4350,-8232.5 4355,-8232.5 4355,-8232.5 4355,-8232.5 4350,-8232.5 4355,-8228 4345,-8232.5 4345,-8232.5" />
<ellipse fill="none" stroke="black" cx="4341" cy="-8232.5" rx="4" ry="4" />
<polygon fill="black" stroke="black" points="3934.5,-8237.5 3934.5,-8227.5 3936.5,-8227.5 3936.5,-8237.5 3934.5,-8237.5" />
<polyline fill="none" stroke="black" points="3933.5,-8232.5 3938.5,-8232.5 " />
<polygon fill="black" stroke="black" points="3939.5,-8237.5 3939.5,-8227.5 3941.5,-8227.5 3941.5,-8237.5 3939.5,-8237.5" />
<polyline fill="none" stroke="black" points="3938.5,-8232.5 3943.5,-8232.5 " />
<text text-anchor="start" x="4048" y="-8236.3" font-family="Helvetica,sans-Serif" font-size="14.00">fko0gw90lpo1tuee56l0nb6y6g5</text>
</g> <!-- rderevision_83396864 -->
<g id="node32" class="node">
<g id="node33" class="node">
<title>
rderevision_83396864
</title>
<polygon fill="#ebcef2" stroke="transparent" points="4393,-8298.5 4393,-8317.5 4523,-8317.5 4523,-8298.5 4393,-8298.5" />
<text text-anchor="start" x="4395" y="-8305.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.RdeRevision</text>
<polygon fill="#ebcef2" stroke="transparent" points="4523,-8298.5 4523,-8317.5 4602,-8317.5 4602,-8298.5 4523,-8298.5" />
<text text-anchor="start" x="4563" y="-8304.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4395" y="-8286.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">tld</text>
<text text-anchor="start" x="4514" y="-8285.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4525" y="-8285.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4395" y="-8267.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">mode</text>
<text text-anchor="start" x="4514" y="-8266.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4525" y="-8266.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4395" y="-8248.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">"date"</text>
<text text-anchor="start" x="4514" y="-8247.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4525" y="-8247.3" font-family="Helvetica,sans-Serif" font-size="14.00">date not null</text>
<text text-anchor="start" x="4395" y="-8228.3" font-family="Helvetica,sans-Serif" font-size="14.00">update_timestamp</text>
<text text-anchor="start" x="4514" y="-8228.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4525" y="-8228.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz</text>
<text text-anchor="start" x="4395" y="-8209.3" font-family="Helvetica,sans-Serif" font-size="14.00">revision</text>
<text text-anchor="start" x="4514" y="-8209.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4525" y="-8209.3" font-family="Helvetica,sans-Serif" font-size="14.00">int4 not null</text>
<polygon fill="none" stroke="#888888" points="4391.5,-8202.5 4391.5,-8318.5 4602.5,-8318.5 4602.5,-8202.5 4391.5,-8202.5" />
<polygon fill="#ebcef2" stroke="transparent" points="4393,-8383.5 4393,-8402.5 4523,-8402.5 4523,-8383.5 4393,-8383.5" />
<text text-anchor="start" x="4395" y="-8390.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.RdeRevision</text>
<polygon fill="#ebcef2" stroke="transparent" points="4523,-8383.5 4523,-8402.5 4602,-8402.5 4602,-8383.5 4523,-8383.5" />
<text text-anchor="start" x="4563" y="-8389.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4395" y="-8371.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">tld</text>
<text text-anchor="start" x="4514" y="-8370.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4525" y="-8370.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4395" y="-8352.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">mode</text>
<text text-anchor="start" x="4514" y="-8351.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4525" y="-8351.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4395" y="-8333.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">"date"</text>
<text text-anchor="start" x="4514" y="-8332.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4525" y="-8332.3" font-family="Helvetica,sans-Serif" font-size="14.00">date not null</text>
<text text-anchor="start" x="4395" y="-8313.3" font-family="Helvetica,sans-Serif" font-size="14.00">update_timestamp</text>
<text text-anchor="start" x="4514" y="-8313.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4525" y="-8313.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz</text>
<text text-anchor="start" x="4395" y="-8294.3" font-family="Helvetica,sans-Serif" font-size="14.00">revision</text>
<text text-anchor="start" x="4514" y="-8294.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4525" y="-8294.3" font-family="Helvetica,sans-Serif" font-size="14.00">int4 not null</text>
<polygon fill="none" stroke="#888888" points="4391.5,-8287.5 4391.5,-8403.5 4602.5,-8403.5 4602.5,-8287.5 4391.5,-8287.5" />
</g> <!-- registrarpoc_ab47054d -->
<g id="node34" class="node">
<g id="node35" class="node">
<title>
registrarpoc_ab47054d
</title>
@@ -3470,7 +3486,7 @@ td.section {
<polyline fill="none" stroke="black" points="445.97,-5346.9 447.93,-5342.31 " />
<text text-anchor="start" x="484" y="-2121.3" font-family="Helvetica,sans-Serif" font-size="14.00">fk_registrar_poc_registrar_id</text>
</g> <!-- registrarupdatehistory_8a38bed4 -->
<g id="node35" class="node">
<g id="node36" class="node">
<title>
registrarupdatehistory_8a38bed4
</title>
@@ -3665,7 +3681,7 @@ td.section {
<polyline fill="none" stroke="black" points="1016.7,-452.19 1021.41,-453.89 " />
<text text-anchor="start" x="1093.5" y="-641.3" font-family="Helvetica,sans-Serif" font-size="14.00">fksr7w342s7x5s5jvdti2axqeq8</text>
</g> <!-- registrarpocupdatehistory_31e5d9aa -->
<g id="node36" class="node">
<g id="node37" class="node">
<title>
registrarpocupdatehistory_31e5d9aa
</title>
@@ -3777,251 +3793,251 @@ td.section {
<polyline fill="none" stroke="black" points="1016.81,-451.88 1021.61,-453.25 " />
<text text-anchor="start" x="1099.5" y="-1702.3" font-family="Helvetica,sans-Serif" font-size="14.00">fkftpbwctxtkc1i0njc0tdcaa2g</text>
</g> <!-- registrylock_ac88663e -->
<g id="node37" class="node">
<g id="node38" class="node">
<title>
registrylock_ac88663e
</title>
<polygon fill="#ebcef2" stroke="transparent" points="4355,-8630.5 4355,-8649.5 4514,-8649.5 4514,-8630.5 4355,-8630.5" />
<text text-anchor="start" x="4357" y="-8637.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.RegistryLock</text>
<polygon fill="#ebcef2" stroke="transparent" points="4514,-8630.5 4514,-8649.5 4640,-8649.5 4640,-8630.5 4514,-8630.5" />
<text text-anchor="start" x="4601" y="-8636.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4357" y="-8618.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="4508" y="-8617.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8617.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="4508" y="-8598.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8598.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="4357" y="-8579.3" font-family="Helvetica,sans-Serif" font-size="14.00">lock_completion_time</text>
<text text-anchor="start" x="4508" y="-8579.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8579.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz</text>
<text text-anchor="start" x="4357" y="-8560.3" font-family="Helvetica,sans-Serif" font-size="14.00">lock_request_time</text>
<text text-anchor="start" x="4508" y="-8560.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8560.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz not null</text>
<text text-anchor="start" x="4357" y="-8541.3" font-family="Helvetica,sans-Serif" font-size="14.00">domain_name</text>
<text text-anchor="start" x="4508" y="-8541.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8541.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4357" y="-8522.3" font-family="Helvetica,sans-Serif" font-size="14.00">is_superuser</text>
<text text-anchor="start" x="4508" y="-8522.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8522.3" font-family="Helvetica,sans-Serif" font-size="14.00">bool not null</text>
<text text-anchor="start" x="4357" y="-8503.3" font-family="Helvetica,sans-Serif" font-size="14.00">registrar_id</text>
<text text-anchor="start" x="4508" y="-8503.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8503.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4357" y="-8484.3" font-family="Helvetica,sans-Serif" font-size="14.00">registrar_poc_id</text>
<text text-anchor="start" x="4508" y="-8484.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8484.3" font-family="Helvetica,sans-Serif" font-size="14.00">text</text>
<text text-anchor="start" x="4357" y="-8465.3" font-family="Helvetica,sans-Serif" font-size="14.00">repo_id</text>
<text text-anchor="start" x="4508" y="-8465.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8465.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4357" y="-8446.3" font-family="Helvetica,sans-Serif" font-size="14.00">verification_code</text>
<text text-anchor="start" x="4508" y="-8446.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8446.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4357" y="-8427.3" font-family="Helvetica,sans-Serif" font-size="14.00">unlock_request_time</text>
<text text-anchor="start" x="4508" y="-8427.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8427.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz</text>
<text text-anchor="start" x="4357" y="-8408.3" font-family="Helvetica,sans-Serif" font-size="14.00">unlock_completion_time</text>
<text text-anchor="start" x="4508" y="-8408.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8408.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz</text>
<text text-anchor="start" x="4357" y="-8389.3" font-family="Helvetica,sans-Serif" font-size="14.00">last_update_time</text>
<text text-anchor="start" x="4508" y="-8389.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8389.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz not null</text>
<text text-anchor="start" x="4357" y="-8370.3" font-family="Helvetica,sans-Serif" font-size="14.00">relock_revision_id</text>
<text text-anchor="start" x="4508" y="-8370.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8370.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8</text>
<text text-anchor="start" x="4357" y="-8351.3" font-family="Helvetica,sans-Serif" font-size="14.00">relock_duration</text>
<text text-anchor="start" x="4508" y="-8351.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8351.3" font-family="Helvetica,sans-Serif" font-size="14.00">interval</text>
<polygon fill="none" stroke="#888888" points="4353.5,-8344.5 4353.5,-8650.5 4640.5,-8650.5 4640.5,-8344.5 4353.5,-8344.5" />
<polygon fill="#ebcef2" stroke="transparent" points="4355,-8715.5 4355,-8734.5 4514,-8734.5 4514,-8715.5 4355,-8715.5" />
<text text-anchor="start" x="4357" y="-8722.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.RegistryLock</text>
<polygon fill="#ebcef2" stroke="transparent" points="4514,-8715.5 4514,-8734.5 4640,-8734.5 4640,-8715.5 4514,-8715.5" />
<text text-anchor="start" x="4601" y="-8721.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4357" y="-8703.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="4508" y="-8702.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8702.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="4508" y="-8683.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8683.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="4357" y="-8664.3" font-family="Helvetica,sans-Serif" font-size="14.00">lock_completion_time</text>
<text text-anchor="start" x="4508" y="-8664.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8664.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz</text>
<text text-anchor="start" x="4357" y="-8645.3" font-family="Helvetica,sans-Serif" font-size="14.00">lock_request_time</text>
<text text-anchor="start" x="4508" y="-8645.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8645.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz not null</text>
<text text-anchor="start" x="4357" y="-8626.3" font-family="Helvetica,sans-Serif" font-size="14.00">domain_name</text>
<text text-anchor="start" x="4508" y="-8626.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8626.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4357" y="-8607.3" font-family="Helvetica,sans-Serif" font-size="14.00">is_superuser</text>
<text text-anchor="start" x="4508" y="-8607.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8607.3" font-family="Helvetica,sans-Serif" font-size="14.00">bool not null</text>
<text text-anchor="start" x="4357" y="-8588.3" font-family="Helvetica,sans-Serif" font-size="14.00">registrar_id</text>
<text text-anchor="start" x="4508" y="-8588.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8588.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4357" y="-8569.3" font-family="Helvetica,sans-Serif" font-size="14.00">registrar_poc_id</text>
<text text-anchor="start" x="4508" y="-8569.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8569.3" font-family="Helvetica,sans-Serif" font-size="14.00">text</text>
<text text-anchor="start" x="4357" y="-8550.3" font-family="Helvetica,sans-Serif" font-size="14.00">repo_id</text>
<text text-anchor="start" x="4508" y="-8550.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8550.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4357" y="-8531.3" font-family="Helvetica,sans-Serif" font-size="14.00">verification_code</text>
<text text-anchor="start" x="4508" y="-8531.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8531.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4357" y="-8512.3" font-family="Helvetica,sans-Serif" font-size="14.00">unlock_request_time</text>
<text text-anchor="start" x="4508" y="-8512.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8512.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz</text>
<text text-anchor="start" x="4357" y="-8493.3" font-family="Helvetica,sans-Serif" font-size="14.00">unlock_completion_time</text>
<text text-anchor="start" x="4508" y="-8493.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8493.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz</text>
<text text-anchor="start" x="4357" y="-8474.3" font-family="Helvetica,sans-Serif" font-size="14.00">last_update_time</text>
<text text-anchor="start" x="4508" y="-8474.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8474.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz not null</text>
<text text-anchor="start" x="4357" y="-8455.3" font-family="Helvetica,sans-Serif" font-size="14.00">relock_revision_id</text>
<text text-anchor="start" x="4508" y="-8455.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8455.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8</text>
<text text-anchor="start" x="4357" y="-8436.3" font-family="Helvetica,sans-Serif" font-size="14.00">relock_duration</text>
<text text-anchor="start" x="4508" y="-8436.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4516" y="-8436.3" font-family="Helvetica,sans-Serif" font-size="14.00">interval</text>
<polygon fill="none" stroke="#888888" points="4353.5,-8429.5 4353.5,-8735.5 4640.5,-8735.5 4640.5,-8429.5 4353.5,-8429.5" />
</g> <!-- registrylock_ac88663e&#45;&gt;registrylock_ac88663e -->
<g id="edge80" class="edge">
<title>
registrylock_ac88663e:w-&gt;registrylock_ac88663e:e
</title>
<path fill="none" stroke="black" d="M4340.84,-8385.09C4267.24,-8458.32 4279.58,-8672.5 4497.5,-8672.5 4719.93,-8672.5 4728.18,-8661.37 4649.48,-8625.73" />
<polygon fill="black" stroke="black" points="4347.26,-8379.83 4357.85,-8376.98 4351.13,-8376.67 4355,-8373.5 4355,-8373.5 4355,-8373.5 4351.13,-8376.67 4352.15,-8370.02 4347.26,-8379.83 4347.26,-8379.83" />
<ellipse fill="none" stroke="black" cx="4344.17" cy="-8382.37" rx="4" ry="4" />
<polygon fill="black" stroke="black" points="4638.88,-8626.47 4642.95,-8617.34 4644.78,-8618.16 4640.7,-8627.29 4638.88,-8626.47" />
<polyline fill="none" stroke="black" points="4640,-8621.5 4644.57,-8623.54 " />
<polygon fill="black" stroke="black" points="4643.44,-8628.51 4647.52,-8619.38 4649.34,-8620.19 4645.27,-8629.33 4643.44,-8628.51" />
<polyline fill="none" stroke="black" points="4644.57,-8623.54 4649.13,-8625.58 " />
<text text-anchor="start" x="4415.5" y="-8676.3" font-family="Helvetica,sans-Serif" font-size="14.00">fk2lhcwpxlnqijr96irylrh1707</text>
<path fill="none" stroke="black" d="M4340.84,-8470.09C4267.24,-8543.32 4279.58,-8757.5 4497.5,-8757.5 4719.93,-8757.5 4728.18,-8746.37 4649.48,-8710.73" />
<polygon fill="black" stroke="black" points="4347.26,-8464.83 4357.85,-8461.98 4351.13,-8461.67 4355,-8458.5 4355,-8458.5 4355,-8458.5 4351.13,-8461.67 4352.15,-8455.02 4347.26,-8464.83 4347.26,-8464.83" />
<ellipse fill="none" stroke="black" cx="4344.17" cy="-8467.37" rx="4" ry="4" />
<polygon fill="black" stroke="black" points="4638.88,-8711.47 4642.95,-8702.34 4644.78,-8703.16 4640.7,-8712.29 4638.88,-8711.47" />
<polyline fill="none" stroke="black" points="4640,-8706.5 4644.57,-8708.54 " />
<polygon fill="black" stroke="black" points="4643.44,-8713.51 4647.52,-8704.38 4649.34,-8705.19 4645.27,-8714.33 4643.44,-8713.51" />
<polyline fill="none" stroke="black" points="4644.57,-8708.54 4649.13,-8710.58 " />
<text text-anchor="start" x="4415.5" y="-8761.3" font-family="Helvetica,sans-Serif" font-size="14.00">fk2lhcwpxlnqijr96irylrh1707</text>
</g> <!-- reservedentry_1a7b8520 -->
<g id="node38" class="node">
<g id="node39" class="node">
<title>
reservedentry_1a7b8520
</title>
<polygon fill="#ebcef2" stroke="transparent" points="4389,-8786.5 4389,-8805.5 4532,-8805.5 4532,-8786.5 4389,-8786.5" />
<text text-anchor="start" x="4391" y="-8793.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.ReservedEntry</text>
<polygon fill="#ebcef2" stroke="transparent" points="4532,-8786.5 4532,-8805.5 4606,-8805.5 4606,-8786.5 4532,-8786.5" />
<text text-anchor="start" x="4567" y="-8792.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4391" y="-8774.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="4510" y="-8773.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4534" y="-8773.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<text text-anchor="start" x="4391" y="-8754.3" font-family="Helvetica,sans-Serif" font-size="14.00">comment</text>
<text text-anchor="start" x="4510" y="-8754.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4534" y="-8754.3" font-family="Helvetica,sans-Serif" font-size="14.00">text</text>
<text text-anchor="start" x="4391" y="-8735.3" font-family="Helvetica,sans-Serif" font-size="14.00">reservation_type</text>
<text text-anchor="start" x="4510" y="-8735.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4534" y="-8735.3" font-family="Helvetica,sans-Serif" font-size="14.00">int4 not null</text>
<text text-anchor="start" x="4391" y="-8717.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">domain_label</text>
<text text-anchor="start" x="4510" y="-8716.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4534" y="-8716.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="4387.5,-8710 4387.5,-8807 4606.5,-8807 4606.5,-8710 4387.5,-8710" />
<polygon fill="#ebcef2" stroke="transparent" points="4389,-8871.5 4389,-8890.5 4532,-8890.5 4532,-8871.5 4389,-8871.5" />
<text text-anchor="start" x="4391" y="-8878.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.ReservedEntry</text>
<polygon fill="#ebcef2" stroke="transparent" points="4532,-8871.5 4532,-8890.5 4606,-8890.5 4606,-8871.5 4532,-8871.5" />
<text text-anchor="start" x="4567" y="-8877.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4391" y="-8859.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="4510" y="-8858.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4534" y="-8858.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<text text-anchor="start" x="4391" y="-8839.3" font-family="Helvetica,sans-Serif" font-size="14.00">comment</text>
<text text-anchor="start" x="4510" y="-8839.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4534" y="-8839.3" font-family="Helvetica,sans-Serif" font-size="14.00">text</text>
<text text-anchor="start" x="4391" y="-8820.3" font-family="Helvetica,sans-Serif" font-size="14.00">reservation_type</text>
<text text-anchor="start" x="4510" y="-8820.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4534" y="-8820.3" font-family="Helvetica,sans-Serif" font-size="14.00">int4 not null</text>
<text text-anchor="start" x="4391" y="-8802.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">domain_label</text>
<text text-anchor="start" x="4510" y="-8801.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4534" y="-8801.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="4387.5,-8795 4387.5,-8892 4606.5,-8892 4606.5,-8795 4387.5,-8795" />
</g> <!-- reservedlist_b97c3f1c -->
<g id="node39" class="node">
<g id="node40" class="node">
<title>
reservedlist_b97c3f1c
</title>
<polygon fill="#ebcef2" stroke="transparent" points="3682.5,-8786.5 3682.5,-8805.5 3815.5,-8805.5 3815.5,-8786.5 3682.5,-8786.5" />
<text text-anchor="start" x="3684.5" y="-8793.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.ReservedList</text>
<polygon fill="#ebcef2" stroke="transparent" points="3815.5,-8786.5 3815.5,-8805.5 3941.5,-8805.5 3941.5,-8786.5 3815.5,-8786.5" />
<text text-anchor="start" x="3902.5" y="-8792.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3684.5" y="-8774.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3808.5" y="-8773.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3817.5" y="-8773.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="3808.5" y="-8754.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3817.5" y="-8754.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="3684.5" y="-8735.3" font-family="Helvetica,sans-Serif" font-size="14.00">creation_timestamp</text>
<text text-anchor="start" x="3808.5" y="-8735.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3817.5" y="-8735.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz not null</text>
<text text-anchor="start" x="3684.5" y="-8716.3" font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
<text text-anchor="start" x="3808.5" y="-8716.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3817.5" y="-8716.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3681,-8710 3681,-8807 3942,-8807 3942,-8710 3681,-8710" />
<polygon fill="#ebcef2" stroke="transparent" points="3682.5,-8871.5 3682.5,-8890.5 3815.5,-8890.5 3815.5,-8871.5 3682.5,-8871.5" />
<text text-anchor="start" x="3684.5" y="-8878.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.ReservedList</text>
<polygon fill="#ebcef2" stroke="transparent" points="3815.5,-8871.5 3815.5,-8890.5 3941.5,-8890.5 3941.5,-8871.5 3815.5,-8871.5" />
<text text-anchor="start" x="3902.5" y="-8877.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3684.5" y="-8859.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3808.5" y="-8858.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3817.5" y="-8858.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="3808.5" y="-8839.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3817.5" y="-8839.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="3684.5" y="-8820.3" font-family="Helvetica,sans-Serif" font-size="14.00">creation_timestamp</text>
<text text-anchor="start" x="3808.5" y="-8820.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3817.5" y="-8820.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz not null</text>
<text text-anchor="start" x="3684.5" y="-8801.3" font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
<text text-anchor="start" x="3808.5" y="-8801.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3817.5" y="-8801.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="3681,-8795 3681,-8892 3942,-8892 3942,-8795 3681,-8795" />
</g> <!-- reservedentry_1a7b8520&#45;&gt;reservedlist_b97c3f1c -->
<g id="edge81" class="edge">
<title>
reservedentry_1a7b8520:w-&gt;reservedlist_b97c3f1c:e
</title>
<path fill="none" stroke="black" d="M4369.86,-8777.5C4190.07,-8777.5 4136.25,-8777.5 3952.76,-8777.5" />
<polygon fill="black" stroke="black" points="4378,-8777.5 4388,-8782 4383,-8777.5 4388,-8777.5 4388,-8777.5 4388,-8777.5 4383,-8777.5 4388,-8773 4378,-8777.5 4378,-8777.5" />
<ellipse fill="none" stroke="black" cx="4374" cy="-8777.5" rx="4" ry="4" />
<polygon fill="black" stroke="black" points="3943.5,-8782.5 3943.5,-8772.5 3945.5,-8772.5 3945.5,-8782.5 3943.5,-8782.5" />
<polyline fill="none" stroke="black" points="3942.5,-8777.5 3947.5,-8777.5 " />
<polygon fill="black" stroke="black" points="3948.5,-8782.5 3948.5,-8772.5 3950.5,-8772.5 3950.5,-8782.5 3948.5,-8782.5" />
<polyline fill="none" stroke="black" points="3947.5,-8777.5 3952.5,-8777.5 " />
<text text-anchor="start" x="4049.5" y="-8781.3" font-family="Helvetica,sans-Serif" font-size="14.00">fkgq03rk0bt1hb915dnyvd3vnfc</text>
<path fill="none" stroke="black" d="M4369.86,-8862.5C4190.07,-8862.5 4136.25,-8862.5 3952.76,-8862.5" />
<polygon fill="black" stroke="black" points="4378,-8862.5 4388,-8867 4383,-8862.5 4388,-8862.5 4388,-8862.5 4388,-8862.5 4383,-8862.5 4388,-8858 4378,-8862.5 4378,-8862.5" />
<ellipse fill="none" stroke="black" cx="4374" cy="-8862.5" rx="4" ry="4" />
<polygon fill="black" stroke="black" points="3943.5,-8867.5 3943.5,-8857.5 3945.5,-8857.5 3945.5,-8867.5 3943.5,-8867.5" />
<polyline fill="none" stroke="black" points="3942.5,-8862.5 3947.5,-8862.5 " />
<polygon fill="black" stroke="black" points="3948.5,-8867.5 3948.5,-8857.5 3950.5,-8857.5 3950.5,-8867.5 3948.5,-8867.5" />
<polyline fill="none" stroke="black" points="3947.5,-8862.5 3952.5,-8862.5 " />
<text text-anchor="start" x="4049.5" y="-8866.3" font-family="Helvetica,sans-Serif" font-size="14.00">fkgq03rk0bt1hb915dnyvd3vnfc</text>
</g> <!-- serversecret_6cc90f09 -->
<g id="node40" class="node">
<g id="node41" class="node">
<title>
serversecret_6cc90f09
</title>
<polygon fill="#ebcef2" stroke="transparent" points="4393,-8871.5 4393,-8890.5 4524,-8890.5 4524,-8871.5 4393,-8871.5" />
<text text-anchor="start" x="4395" y="-8878.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.ServerSecret</text>
<polygon fill="#ebcef2" stroke="transparent" points="4524,-8871.5 4524,-8890.5 4601,-8890.5 4601,-8871.5 4524,-8871.5" />
<text text-anchor="start" x="4562" y="-8877.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4395" y="-8858.3" font-family="Helvetica,sans-Serif" font-size="14.00">secret</text>
<text text-anchor="start" x="4477" y="-8858.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4526" y="-8858.3" font-family="Helvetica,sans-Serif" font-size="14.00">uuid not null</text>
<text text-anchor="start" x="4395" y="-8840.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">id</text>
<text text-anchor="start" x="4477" y="-8839.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4526" y="-8839.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<polygon fill="none" stroke="#888888" points="4392,-8833 4392,-8892 4602,-8892 4602,-8833 4392,-8833" />
<polygon fill="#ebcef2" stroke="transparent" points="4393,-8956.5 4393,-8975.5 4524,-8975.5 4524,-8956.5 4393,-8956.5" />
<text text-anchor="start" x="4395" y="-8963.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.ServerSecret</text>
<polygon fill="#ebcef2" stroke="transparent" points="4524,-8956.5 4524,-8975.5 4601,-8975.5 4601,-8956.5 4524,-8956.5" />
<text text-anchor="start" x="4562" y="-8962.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4395" y="-8943.3" font-family="Helvetica,sans-Serif" font-size="14.00">secret</text>
<text text-anchor="start" x="4477" y="-8943.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4526" y="-8943.3" font-family="Helvetica,sans-Serif" font-size="14.00">uuid not null</text>
<text text-anchor="start" x="4395" y="-8925.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">id</text>
<text text-anchor="start" x="4477" y="-8924.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4526" y="-8924.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<polygon fill="none" stroke="#888888" points="4392,-8918 4392,-8977 4602,-8977 4602,-8918 4392,-8918" />
</g> <!-- signedmarkrevocationentry_99c39721 -->
<g id="node41" class="node">
<g id="node42" class="node">
<title>
signedmarkrevocationentry_99c39721
</title>
<polygon fill="#ebcef2" stroke="transparent" points="4318,-8976.5 4318,-8995.5 4551,-8995.5 4551,-8976.5 4318,-8976.5" />
<text text-anchor="start" x="4320" y="-8983.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.SignedMarkRevocationEntry</text>
<polygon fill="#ebcef2" stroke="transparent" points="4551,-8976.5 4551,-8995.5 4677,-8995.5 4677,-8976.5 4551,-8976.5" />
<text text-anchor="start" x="4638" y="-8982.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4320" y="-8964.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="4483" y="-8963.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4553" y="-8963.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<text text-anchor="start" x="4320" y="-8944.3" font-family="Helvetica,sans-Serif" font-size="14.00">revocation_time</text>
<text text-anchor="start" x="4483" y="-8944.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4553" y="-8944.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz not null</text>
<text text-anchor="start" x="4320" y="-8926.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">smd_id</text>
<text text-anchor="start" x="4483" y="-8925.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4553" y="-8925.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="4316.5,-8918.5 4316.5,-8996.5 4677.5,-8996.5 4677.5,-8918.5 4316.5,-8918.5" />
<polygon fill="#ebcef2" stroke="transparent" points="4318,-9061.5 4318,-9080.5 4551,-9080.5 4551,-9061.5 4318,-9061.5" />
<text text-anchor="start" x="4320" y="-9068.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.SignedMarkRevocationEntry</text>
<polygon fill="#ebcef2" stroke="transparent" points="4551,-9061.5 4551,-9080.5 4677,-9080.5 4677,-9061.5 4551,-9061.5" />
<text text-anchor="start" x="4638" y="-9067.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4320" y="-9049.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="4483" y="-9048.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4553" y="-9048.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<text text-anchor="start" x="4320" y="-9029.3" font-family="Helvetica,sans-Serif" font-size="14.00">revocation_time</text>
<text text-anchor="start" x="4483" y="-9029.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4553" y="-9029.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz not null</text>
<text text-anchor="start" x="4320" y="-9011.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">smd_id</text>
<text text-anchor="start" x="4483" y="-9010.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4553" y="-9010.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="4316.5,-9003.5 4316.5,-9081.5 4677.5,-9081.5 4677.5,-9003.5 4316.5,-9003.5" />
</g> <!-- signedmarkrevocationlist_c5d968fb -->
<g id="node42" class="node">
<g id="node43" class="node">
<title>
signedmarkrevocationlist_c5d968fb
</title>
<polygon fill="#ebcef2" stroke="transparent" points="3645.5,-8976.5 3645.5,-8995.5 3867.5,-8995.5 3867.5,-8976.5 3645.5,-8976.5" />
<text text-anchor="start" x="3647.5" y="-8983.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.SignedMarkRevocationList</text>
<polygon fill="#ebcef2" stroke="transparent" points="3867.5,-8976.5 3867.5,-8995.5 3977.5,-8995.5 3977.5,-8976.5 3867.5,-8976.5" />
<text text-anchor="start" x="3938.5" y="-8982.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3647.5" y="-8964.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3797.5" y="-8963.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3869.5" y="-8963.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="3797.5" y="-8944.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3869.5" y="-8944.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="3647.5" y="-8925.3" font-family="Helvetica,sans-Serif" font-size="14.00">creation_time</text>
<text text-anchor="start" x="3797.5" y="-8925.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3869.5" y="-8925.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz</text>
<polygon fill="none" stroke="#888888" points="3644.5,-8918.5 3644.5,-8996.5 3978.5,-8996.5 3978.5,-8918.5 3644.5,-8918.5" />
<polygon fill="#ebcef2" stroke="transparent" points="3645.5,-9061.5 3645.5,-9080.5 3867.5,-9080.5 3867.5,-9061.5 3645.5,-9061.5" />
<text text-anchor="start" x="3647.5" y="-9068.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.SignedMarkRevocationList</text>
<polygon fill="#ebcef2" stroke="transparent" points="3867.5,-9061.5 3867.5,-9080.5 3977.5,-9080.5 3977.5,-9061.5 3867.5,-9061.5" />
<text text-anchor="start" x="3938.5" y="-9067.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="3647.5" y="-9049.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">revision_id</text>
<text text-anchor="start" x="3797.5" y="-9048.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3869.5" y="-9048.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="3797.5" y="-9029.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3869.5" y="-9029.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="3647.5" y="-9010.3" font-family="Helvetica,sans-Serif" font-size="14.00">creation_time</text>
<text text-anchor="start" x="3797.5" y="-9010.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="3869.5" y="-9010.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz</text>
<polygon fill="none" stroke="#888888" points="3644.5,-9003.5 3644.5,-9081.5 3978.5,-9081.5 3978.5,-9003.5 3644.5,-9003.5" />
</g> <!-- signedmarkrevocationentry_99c39721&#45;&gt;signedmarkrevocationlist_c5d968fb -->
<g id="edge82" class="edge">
<title>
signedmarkrevocationentry_99c39721:w-&gt;signedmarkrevocationlist_c5d968fb:e
</title>
<path fill="none" stroke="black" d="M4298.63,-8967.5C4166.5,-8967.5 4124.66,-8967.5 3988.87,-8967.5" />
<polygon fill="black" stroke="black" points="4307,-8967.5 4317,-8972 4312,-8967.5 4317,-8967.5 4317,-8967.5 4317,-8967.5 4312,-8967.5 4317,-8963 4307,-8967.5 4307,-8967.5" />
<ellipse fill="none" stroke="black" cx="4303" cy="-8967.5" rx="4" ry="4" />
<polygon fill="black" stroke="black" points="3979.5,-8972.5 3979.5,-8962.5 3981.5,-8962.5 3981.5,-8972.5 3979.5,-8972.5" />
<polyline fill="none" stroke="black" points="3978.5,-8967.5 3983.5,-8967.5 " />
<polygon fill="black" stroke="black" points="3984.5,-8972.5 3984.5,-8962.5 3986.5,-8962.5 3986.5,-8972.5 3984.5,-8972.5" />
<polyline fill="none" stroke="black" points="3983.5,-8967.5 3988.5,-8967.5 " />
<text text-anchor="start" x="4058.5" y="-8971.3" font-family="Helvetica,sans-Serif" font-size="14.00">fk5ivlhvs3121yx2li5tqh54u4</text>
<path fill="none" stroke="black" d="M4298.63,-9052.5C4166.5,-9052.5 4124.66,-9052.5 3988.87,-9052.5" />
<polygon fill="black" stroke="black" points="4307,-9052.5 4317,-9057 4312,-9052.5 4317,-9052.5 4317,-9052.5 4317,-9052.5 4312,-9052.5 4317,-9048 4307,-9052.5 4307,-9052.5" />
<ellipse fill="none" stroke="black" cx="4303" cy="-9052.5" rx="4" ry="4" />
<polygon fill="black" stroke="black" points="3979.5,-9057.5 3979.5,-9047.5 3981.5,-9047.5 3981.5,-9057.5 3979.5,-9057.5" />
<polyline fill="none" stroke="black" points="3978.5,-9052.5 3983.5,-9052.5 " />
<polygon fill="black" stroke="black" points="3984.5,-9057.5 3984.5,-9047.5 3986.5,-9047.5 3986.5,-9057.5 3984.5,-9057.5" />
<polyline fill="none" stroke="black" points="3983.5,-9052.5 3988.5,-9052.5 " />
<text text-anchor="start" x="4058.5" y="-9056.3" font-family="Helvetica,sans-Serif" font-size="14.00">fk5ivlhvs3121yx2li5tqh54u4</text>
</g> <!-- spec11threatmatch_a61228a6 -->
<g id="node43" class="node">
<g id="node44" class="node">
<title>
spec11threatmatch_a61228a6
</title>
<polygon fill="#ebcef2" stroke="transparent" points="4354,-9175.5 4354,-9194.5 4530,-9194.5 4530,-9175.5 4354,-9175.5" />
<text text-anchor="start" x="4356" y="-9182.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.Spec11ThreatMatch</text>
<polygon fill="#ebcef2" stroke="transparent" points="4530,-9175.5 4530,-9194.5 4640,-9194.5 4640,-9175.5 4530,-9175.5" />
<text text-anchor="start" x="4601" y="-9181.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4356" y="-9163.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">id</text>
<text text-anchor="start" x="4491" y="-9162.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4532" y="-9162.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="4491" y="-9143.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4532" y="-9143.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="4356" y="-9124.3" font-family="Helvetica,sans-Serif" font-size="14.00">check_date</text>
<text text-anchor="start" x="4491" y="-9124.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4532" y="-9124.3" font-family="Helvetica,sans-Serif" font-size="14.00">date not null</text>
<text text-anchor="start" x="4356" y="-9105.3" font-family="Helvetica,sans-Serif" font-size="14.00">domain_name</text>
<text text-anchor="start" x="4491" y="-9105.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4532" y="-9105.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4356" y="-9086.3" font-family="Helvetica,sans-Serif" font-size="14.00">domain_repo_id</text>
<text text-anchor="start" x="4491" y="-9086.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4532" y="-9086.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4356" y="-9067.3" font-family="Helvetica,sans-Serif" font-size="14.00">registrar_id</text>
<text text-anchor="start" x="4491" y="-9067.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4532" y="-9067.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4356" y="-9048.3" font-family="Helvetica,sans-Serif" font-size="14.00">threat_types</text>
<text text-anchor="start" x="4491" y="-9048.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4532" y="-9048.3" font-family="Helvetica,sans-Serif" font-size="14.00">_text not null</text>
<text text-anchor="start" x="4356" y="-9029.3" font-family="Helvetica,sans-Serif" font-size="14.00">tld</text>
<text text-anchor="start" x="4491" y="-9029.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4532" y="-9029.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="4353,-9023 4353,-9196 4641,-9196 4641,-9023 4353,-9023" />
<polygon fill="#ebcef2" stroke="transparent" points="4354,-9260.5 4354,-9279.5 4530,-9279.5 4530,-9260.5 4354,-9260.5" />
<text text-anchor="start" x="4356" y="-9267.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.Spec11ThreatMatch</text>
<polygon fill="#ebcef2" stroke="transparent" points="4530,-9260.5 4530,-9279.5 4640,-9279.5 4640,-9260.5 4530,-9260.5" />
<text text-anchor="start" x="4601" y="-9266.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4356" y="-9248.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">id</text>
<text text-anchor="start" x="4491" y="-9247.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4532" y="-9247.3" font-family="Helvetica,sans-Serif" font-size="14.00">bigserial not null</text>
<text text-anchor="start" x="4491" y="-9228.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4532" y="-9228.3" font-family="Helvetica,sans-Serif" font-size="14.00">auto-incremented</text>
<text text-anchor="start" x="4356" y="-9209.3" font-family="Helvetica,sans-Serif" font-size="14.00">check_date</text>
<text text-anchor="start" x="4491" y="-9209.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4532" y="-9209.3" font-family="Helvetica,sans-Serif" font-size="14.00">date not null</text>
<text text-anchor="start" x="4356" y="-9190.3" font-family="Helvetica,sans-Serif" font-size="14.00">domain_name</text>
<text text-anchor="start" x="4491" y="-9190.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4532" y="-9190.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4356" y="-9171.3" font-family="Helvetica,sans-Serif" font-size="14.00">domain_repo_id</text>
<text text-anchor="start" x="4491" y="-9171.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4532" y="-9171.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4356" y="-9152.3" font-family="Helvetica,sans-Serif" font-size="14.00">registrar_id</text>
<text text-anchor="start" x="4491" y="-9152.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4532" y="-9152.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4356" y="-9133.3" font-family="Helvetica,sans-Serif" font-size="14.00">threat_types</text>
<text text-anchor="start" x="4491" y="-9133.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4532" y="-9133.3" font-family="Helvetica,sans-Serif" font-size="14.00">_text not null</text>
<text text-anchor="start" x="4356" y="-9114.3" font-family="Helvetica,sans-Serif" font-size="14.00">tld</text>
<text text-anchor="start" x="4491" y="-9114.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4532" y="-9114.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<polygon fill="none" stroke="#888888" points="4353,-9108 4353,-9281 4641,-9281 4641,-9108 4353,-9108" />
</g> <!-- tmchcrl_d282355 -->
<g id="node45" class="node">
<g id="node46" class="node">
<title>
tmchcrl_d282355
</title>
<polygon fill="#ebcef2" stroke="transparent" points="4361,-9298.5 4361,-9317.5 4508,-9317.5 4508,-9298.5 4361,-9298.5" />
<text text-anchor="start" x="4363" y="-9305.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.TmchCrl</text>
<polygon fill="#ebcef2" stroke="transparent" points="4508,-9298.5 4508,-9317.5 4634,-9317.5 4634,-9298.5 4508,-9298.5" />
<text text-anchor="start" x="4595" y="-9304.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4363" y="-9285.3" font-family="Helvetica,sans-Serif" font-size="14.00">certificate_revocations</text>
<text text-anchor="start" x="4502" y="-9285.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4510" y="-9285.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4363" y="-9266.3" font-family="Helvetica,sans-Serif" font-size="14.00">update_timestamp</text>
<text text-anchor="start" x="4502" y="-9266.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4510" y="-9266.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz not null</text>
<text text-anchor="start" x="4363" y="-9247.3" font-family="Helvetica,sans-Serif" font-size="14.00">url</text>
<text text-anchor="start" x="4502" y="-9247.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4510" y="-9247.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4363" y="-9229.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">id</text>
<text text-anchor="start" x="4502" y="-9228.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4510" y="-9228.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<polygon fill="none" stroke="#888888" points="4359.5,-9222 4359.5,-9319 4634.5,-9319 4634.5,-9222 4359.5,-9222" />
<polygon fill="#ebcef2" stroke="transparent" points="4361,-9383.5 4361,-9402.5 4508,-9402.5 4508,-9383.5 4361,-9383.5" />
<text text-anchor="start" x="4363" y="-9390.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">public.TmchCrl</text>
<polygon fill="#ebcef2" stroke="transparent" points="4508,-9383.5 4508,-9402.5 4634,-9402.5 4634,-9383.5 4508,-9383.5" />
<text text-anchor="start" x="4595" y="-9389.3" font-family="Helvetica,sans-Serif" font-size="14.00">[table]</text>
<text text-anchor="start" x="4363" y="-9370.3" font-family="Helvetica,sans-Serif" font-size="14.00">certificate_revocations</text>
<text text-anchor="start" x="4502" y="-9370.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4510" y="-9370.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4363" y="-9351.3" font-family="Helvetica,sans-Serif" font-size="14.00">update_timestamp</text>
<text text-anchor="start" x="4502" y="-9351.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4510" y="-9351.3" font-family="Helvetica,sans-Serif" font-size="14.00">timestamptz not null</text>
<text text-anchor="start" x="4363" y="-9332.3" font-family="Helvetica,sans-Serif" font-size="14.00">url</text>
<text text-anchor="start" x="4502" y="-9332.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4510" y="-9332.3" font-family="Helvetica,sans-Serif" font-size="14.00">text not null</text>
<text text-anchor="start" x="4363" y="-9314.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-style="italic" font-size="14.00">id</text>
<text text-anchor="start" x="4502" y="-9313.3" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
<text text-anchor="start" x="4510" y="-9313.3" font-family="Helvetica,sans-Serif" font-size="14.00">int8 not null</text>
<polygon fill="none" stroke="#888888" points="4359.5,-9307 4359.5,-9404 4634.5,-9404 4634.5,-9307 4359.5,-9307" />
</g> <!-- userupdatehistory_24efd476 -->
<g id="node47" class="node">
<g id="node48" class="node">
<title>
userupdatehistory_24efd476
</title>
@@ -8949,6 +8965,60 @@ td.section {
</tbody>
</table>
<p>&nbsp;</p>
<table>
<caption style="background-color: #EBCEF2;">
<span id="featureflag_3ee43a78" class="caption_name">public.FeatureFlag</span> <span class="caption_description">[table]</span>
</caption>
<tbody>
<tr>
<td class="spacer"></td>
<td class="minwidth"><b><i>feature_name</i></b></td>
<td class="minwidth">text not null</td>
</tr>
<tr>
<td class="spacer"></td>
<td class="minwidth">status</td>
<td class="minwidth">"hstore" not null</td>
</tr>
<tr>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="3" class="section">Primary Key</td>
</tr>
<tr>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2" class="name">FeatureFlag_pkey</td>
<td class="description right">[primary key]</td>
</tr>
<tr>
<td class="spacer"></td>
<td class="minwidth">feature_name</td>
<td class="minwidth"></td>
</tr>
<tr>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="3" class="section">Indexes</td>
</tr>
<tr>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2" class="name">FeatureFlag_pkey</td>
<td class="description right">[unique index]</td>
</tr>
<tr>
<td class="spacer"></td>
<td class="minwidth">feature_name</td>
<td class="minwidth">ascending</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<table>
<caption style="background-color: #EBCEF2;">
<span id="graceperiod_cd3b2e8f" class="caption_name">public.GracePeriod</span> <span class="caption_description">[table]</span>

View File

@@ -170,3 +170,4 @@ V169__add_more_indexes_needed_for_delete_prober_data.sql
V170__user_update_registry_lock_email.sql
V171__drop_create_billing_cost_columns_from_tld.sql
V172__allocation_token_renewal_price.sql
V173__create_feature_flag_table.sql

View File

@@ -0,0 +1,19 @@
-- Copyright 2024 The Nomulus Authors. All Rights Reserved.
--
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
create table "FeatureFlag" (
feature_name text not null,
status hstore not null,
primary key (feature_name)
);

View File

@@ -677,6 +677,16 @@ CREATE SEQUENCE public."DomainTransactionRecord_id_seq"
ALTER SEQUENCE public."DomainTransactionRecord_id_seq" OWNED BY public."DomainTransactionRecord".id;
--
-- Name: FeatureFlag; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public."FeatureFlag" (
feature_name text NOT NULL,
status public.hstore NOT NULL
);
--
-- Name: GracePeriod; Type: TABLE; Schema: public; Owner: -
--
@@ -1618,6 +1628,14 @@ ALTER TABLE ONLY public."Domain"
ADD CONSTRAINT "Domain_pkey" PRIMARY KEY (repo_id);
--
-- Name: FeatureFlag FeatureFlag_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public."FeatureFlag"
ADD CONSTRAINT "FeatureFlag_pkey" PRIMARY KEY (feature_name);
--
-- Name: GracePeriodHistory GracePeriodHistory_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

View File

@@ -35,17 +35,8 @@ ext {
// Note that since Gradle 7, for version labels to be strict, we need to
// append '!!' to the end. Otherwise they may still be forced to upgrade.
// PINNED VERSIONS START HERE.
// Breaking changes causing compilation error.
// TODO: Migrate to com.google.cloud:google-cloud-dns if
// https://github.com/googleapis/google-cloud-java/issues/8929 is fixed.
// At least migrate to v2.
'com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0',
// TODO: Migrate to v3
'com.google.apis:google-api-services-drive:v2-rev393-1.25.0',
// TODO: Remove after the legacy console is deleted.
'com.google.closure-stylesheets:closure-stylesheets:1.5.0',
'com.google.javascript:closure-compiler:v20210505',
@@ -60,14 +51,6 @@ ext {
// CAPPED VERSIONS START HERE.
// Schema crawler 16.11+ breaks API and tries to register a SQL driver
// referenced (but not provided) by appengine-api-1.0-sdk.
// TODO: Try upgrading to the latest version after we are off GAE.
'us.fatehi:schemacrawler:[16.10.1, 16.11.0)!!',
'us.fatehi:schemacrawler-api:[16.10.1, 16.11.0)!!',
'us.fatehi:schemacrawler-diagram:[16.10.1, 16.11.0)!!',
'us.fatehi:schemacrawler-tools:[16.10.1, 16.11.0)!!',
// Hibernate 6.0+ requires Jakarta EE.
// TODO: Upgrade to 6.0+ after we migrate to Jakarta EE persistence.
'org.hibernate:hibernate-core:[5.6.14.Final, 6.0)',
@@ -89,25 +72,27 @@ ext {
// (I think).
'com.sun.xml.bind:jaxb-xjc:[2.3.3, 2.4)!!',
// Excluding versions 2.0+ because it is runtime incompatible with the
// pinned google-api-services-(dns|drive) libraries. They have a
// hardcoded dependency on major version version 1.
// TODO: Remove the cap after the pins are removed.
'com.google.api-client:google-api-client:[1.31.3,2)!!',
// Dagger doesn't support the Jakarta namespace yet. Pre-2.0 Jakarta
// Inject still use the old javax namespace.
// TODO: Remove the cap when https://github.com/google/dagger/issues/2058
// is released.
'jakarta.inject:jakarta.inject-api:[1,2.0.0)!!',
// This packages has a broken versioning scheme. There are v1beta3-* and
// v1b4-* packages that are way older than v1b3-rev2024MMDD-* that need to
// be excluded.
'com.google.apis:google-api-services-dataflow:[v1b3-rev20240430-2.0.0, v1b4)!!',
// v2 has not been updated since 2022, seems abandoned. It also requires
// google-api-client major version 1.
'com.google.apis:google-api-services-dns:[v1-rev20240419-2.0.0, v2beta)',
// DYNAMIC VERSIONS START HERE.
'args4j:args4j:[2.0.26,)',
'com.fasterxml.jackson.core:jackson-databind:[2.11.2,)',
'com.github.ben-manes.caffeine:caffeine:[3.0.0,)',
'com.google.api-client:google-api-client-appengine:[1.31.3,)',
'com.google.api-client:google-api-client:[1.31.3,)',
'com.google.api-client:google-api-client-java6:[1.31.3,)',
'com.google.api-client:google-api-client-servlet:[1.31.3,)',
'com.google.api.grpc:proto-google-cloud-secretmanager-v1:[1.4.0,)',
@@ -115,15 +100,14 @@ ext {
'com.google.api.grpc:proto-google-common-protos:[2.1.0,)',
'com.google.api:gax:[1.66.0,)',
'com.google.apis:google-api-services-admin-directory:[directory_v1-rev20240102-2.0.0,)',
'com.google.apis:google-api-services-appengine:[v1-rev130-1.25.0,)',
'com.google.apis:google-api-services-bigquery:[v2-rev459-1.25.0,)',
'com.google.apis:google-api-services-cloudkms:[v1-rev108-1.25.0,)',
'com.google.apis:google-api-services-dataflow:[v1b3-rev302-1.25.0,)',
'com.google.apis:google-api-services-bigquery:[v2-rev20240423-2.0.0,)',
'com.google.apis:google-api-services-cloudkms:[v1-rev20240513-2.0.0,)',
'com.google.apis:google-api-services-drive:[v3-rev20240521-2.0.0,)',
'com.google.apis:google-api-services-gmail:[v1-rev20220404-2.0.0,)',
'com.google.apis:google-api-services-groupssettings:[v1-rev82-1.25.0,)',
'com.google.apis:google-api-services-iam:[v1-rev20240118-2.0.0,0)',
'com.google.apis:google-api-services-monitoring:[v3-rev540-1.25.0,)',
'com.google.apis:google-api-services-sheets:[v4-rev612-1.25.0,)',
'com.google.apis:google-api-services-monitoring:[v3-rev20240519-2.0.0,)',
'com.google.apis:google-api-services-sheets:[v4-rev20240514-2.0.0,)',
'com.google.apis:google-api-services-storage:[v1-rev20210127-1.31.0,)',
'com.google.auth:google-auth-library-credentials:[0.24.1,)',
'com.google.auth:google-auth-library-oauth2-http:[0.24.1,)',
@@ -150,7 +134,6 @@ ext {
'com.google.guava:guava-testlib:[33.0.0-jre,)',
'com.google.guava:guava:[33.0.0-jre,)',
'com.google.gwt:gwt-user:[2.9.0,)',
'com.google.http-client:google-http-client-appengine:[1.39.0,)',
'com.google.http-client:google-http-client-jackson2:[1.39.0,)',
'com.google.http-client:google-http-client:[1.39.0,)',
// TODO: Remove after the old console is removed (dependency of soy).
@@ -158,7 +141,6 @@ ext {
'com.google.monitoring-client:contrib:[1.0.7,)',
'com.google.monitoring-client:metrics:[1.0.7,)',
'com.google.monitoring-client:stackdriver:[1.0.7,)',
'com.google.oauth-client:google-oauth-client-appengine:[1.31.4,)',
'com.google.oauth-client:google-oauth-client-java6:[1.31.4,)',
'com.google.oauth-client:google-oauth-client-jetty:[1.31.4,)',
'com.google.oauth-client:google-oauth-client-servlet:[1.31.4,)',
@@ -241,6 +223,11 @@ ext {
'org.testcontainers:selenium:[1.19.6,)',
'org.testcontainers:testcontainers:[1.19.6,)',
'org.yaml:snakeyaml:[1.17,)',
'us.fatehi:schemacrawler:[16.10.1,)',
'us.fatehi:schemacrawler-api:[16.10.1,)',
'us.fatehi:schemacrawler-diagram:[16.10.1,)',
'us.fatehi:schemacrawler-postgresql:[16.10.1,)',
'us.fatehi:schemacrawler-tools:[16.10.1,)',
'xerces:xmlParserAPIs:[2.6.2,)',
]

View File

@@ -29,11 +29,10 @@ com.github.jnr:jnr-unixsocket:0.38.22=deploy_jar,runtimeClasspath,testRuntimeCla
com.github.jnr:jnr-x86asm:1.0.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone,testAnnotationProcessor
com.google.android:annotations:4.1.1.4=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-appengine:2.6.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-jackson2:2.0.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-java6:2.1.4=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-servlet:2.6.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:1.35.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:2.6.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api.grpc:gapic-google-cloud-storage-v2:2.32.1-alpha=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:3.4.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.176.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
@@ -73,12 +72,11 @@ com.google.api:gax-grpc:2.48.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api:gax-httpjson:2.48.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api:gax:2.48.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.apis:google-api-services-admin-directory:directory_v1-rev20240509-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.apis:google-api-services-appengine:v1-rev20240415-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.apis:google-api-services-bigquery:v2-rev20240229-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.apis:google-api-services-bigquery:v2-rev20240423-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20240310-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dataflow:v1b3-rev20240218-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.apis:google-api-services-drive:v2-rev393-1.25.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dataflow:v1b3-rev20240430-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dns:v1-rev20240419-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.apis:google-api-services-drive:v3-rev20240521-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.apis:google-api-services-gmail:v1-rev20240520-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.apis:google-api-services-groupssettings:v1-rev20210624-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.apis:google-api-services-healthcare:v1-rev20240130-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
@@ -144,9 +142,9 @@ com.google.guava:guava:32.1.1-jre=annotationProcessor,errorprone,testAnnotationP
com.google.guava:guava:33.2.0-android=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=checkstyle,deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.gwt:gwt-user:2.10.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.43.3=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-appengine:1.44.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.44.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-appengine:1.43.3=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-jackson2:1.44.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-protobuf:1.44.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client:1.44.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
@@ -158,7 +156,6 @@ com.google.j2objc:j2objc-annotations:3.0.0=deploy_jar,runtimeClasspath,testRunti
com.google.jsinterop:jsinterop-annotations:2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.monitoring-client:metrics:1.0.7=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.monitoring-client:stackdriver:1.0.7=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-appengine:1.36.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-java6:1.36.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-jetty:1.36.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-servlet:1.36.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
@@ -311,8 +308,8 @@ org.codehaus.mojo:animal-sniffer-annotations:1.23=deploy_jar,runtimeClasspath,te
org.conscrypt:conscrypt-openjdk-uber:2.5.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.eclipse.collections:eclipse-collections-api:11.1.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.eclipse.collections:eclipse-collections:11.1.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.flywaydb:flyway-core:10.13.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.flywaydb:flyway-database-postgresql:10.13.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.flywaydb:flyway-core:10.14.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.flywaydb:flyway-database-postgresql:10.14.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.glassfish.jaxb:jaxb-runtime:2.3.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.glassfish.jaxb:txw2:2.3.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.gwtproject:gwt-user:2.10.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
@@ -357,11 +354,11 @@ org.ow2.asm:asm-tree:9.6=jacocoAnt
org.ow2.asm:asm-util:9.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.ow2.asm:asm:9.6=deploy_jar,jacocoAnt,runtimeClasspath,testRuntimeClasspath
org.pcollections:pcollections:3.1.4=annotationProcessor,errorprone,testAnnotationProcessor
org.postgresql:postgresql:42.7.3=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.postgresql:postgresql:42.7.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.reflections:reflections:0.10.2=checkstyle
org.rnorth.duct-tape:duct-tape:1.0.8=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:2.1.0-alpha1=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.slf4j:slf4j-jdk14:2.1.0-alpha1=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:2.0.13=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.slf4j:slf4j-jdk14:2.0.12=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.snakeyaml:snakeyaml-engine:2.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.testcontainers:database-commons:1.19.8=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.testcontainers:jdbc:1.19.8=deploy_jar,runtimeClasspath,testRuntimeClasspath
@@ -371,10 +368,13 @@ org.threeten:threetenbp:1.6.9=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.w3c.css:sac:1.3=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.xerial.snappy:snappy-java:1.1.10.4=deploy_jar,runtimeClasspath,testRuntimeClasspath
org.yaml:snakeyaml:2.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-api:16.10.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-diagram:16.10.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-tools:16.10.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-utility:16.10.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
us.fatehi:schemacrawler:16.10.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-api:16.21.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-diagram:16.21.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-loader:16.21.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-postgresql:16.21.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-text:16.21.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-tools:16.21.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-utility:16.21.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
us.fatehi:schemacrawler:16.21.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
xerces:xmlParserAPIs:2.6.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
empty=compileClasspath,providedCompile,providedRuntime,testCompileClasspath

View File

@@ -0,0 +1,4 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
empty=classpath

View File

@@ -0,0 +1,69 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
aopalliance:aopalliance:1.0=annotationProcessor,errorprone,testAnnotationProcessor
com.github.ben-manes.caffeine:caffeine:3.0.5=annotationProcessor,errorprone,testAnnotationProcessor
com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone,testAnnotationProcessor
com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor
com.google.auto.value:auto-value-annotations:1.9=annotationProcessor,errorprone,testAnnotationProcessor
com.google.auto:auto-common:1.2.1=annotationProcessor,errorprone,testAnnotationProcessor
com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
com.google.errorprone:error_prone_annotation:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor
com.google.errorprone:error_prone_annotations:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor
com.google.errorprone:error_prone_annotations:2.26.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.errorprone:error_prone_annotations:2.7.1=checkstyle
com.google.errorprone:error_prone_check_api:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor
com.google.errorprone:error_prone_core:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor
com.google.errorprone:error_prone_type_annotations:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor
com.google.errorprone:javac:9+181-r4173-1=errorproneJavac
com.google.flogger:flogger-system-backend:0.8=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.flogger:flogger:0.8=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.guava:failureaccess:1.0.1=annotationProcessor,checkstyle,errorprone,testAnnotationProcessor
com.google.guava:failureaccess:1.0.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.guava:guava-parent:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor
com.google.guava:guava:31.0.1-jre=checkstyle
com.google.guava:guava:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor
com.google.guava:guava:33.2.1-jre=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=checkstyle,compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.inject:guice:5.1.0=annotationProcessor,errorprone,testAnnotationProcessor
com.google.j2objc:j2objc-annotations:1.3=checkstyle
com.google.j2objc:j2objc-annotations:3.0.0=compileClasspath,testCompileClasspath
com.google.protobuf:protobuf-java:3.19.6=annotationProcessor,errorprone,testAnnotationProcessor
com.puppycrawl.tools:checkstyle:9.3=checkstyle
commons-beanutils:commons-beanutils:1.9.4=checkstyle
commons-collections:commons-collections:3.2.2=checkstyle
info.picocli:picocli:4.6.2=checkstyle
io.github.eisop:dataflow-errorprone:3.34.0-eisop1=annotationProcessor,errorprone,testAnnotationProcessor
io.github.java-diff-utils:java-diff-utils:4.12=annotationProcessor,errorprone,testAnnotationProcessor
io.netty:netty-buffer:4.1.110.Final=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.netty:netty-codec-http:4.1.110.Final=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.netty:netty-codec:4.1.110.Final=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.netty:netty-common:4.1.110.Final=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.netty:netty-handler:4.1.110.Final=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.netty:netty-resolver:4.1.110.Final=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.1.110.Final=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.1.110.Final=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor
joda-time:joda-time:2.12.7=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
net.sf.saxon:Saxon-HE:10.6=checkstyle
org.antlr:antlr4-runtime:4.9.3=checkstyle
org.bouncycastle:bcpg-jdk18on:1.78.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.bouncycastle:bcpkix-jdk18on:1.78.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.bouncycastle:bcprov-jdk18on:1.78.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.bouncycastle:bcutil-jdk18on:1.78.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.checkerframework:checker-compat-qual:2.5.3=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.checkerframework:checker-qual:3.12.0=checkstyle
org.checkerframework:checker-qual:3.33.0=annotationProcessor,errorprone,testAnnotationProcessor
org.checkerframework:checker-qual:3.42.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.jacoco:org.jacoco.agent:0.8.11=jacocoAgent,jacocoAnt
org.jacoco:org.jacoco.ant:0.8.11=jacocoAnt
org.jacoco:org.jacoco.core:0.8.11=jacocoAnt
org.jacoco:org.jacoco.report:0.8.11=jacocoAnt
org.javassist:javassist:3.28.0-GA=checkstyle
org.jcommander:jcommander:1.83=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.ow2.asm:asm-commons:9.6=jacocoAnt
org.ow2.asm:asm-tree:9.6=jacocoAnt
org.ow2.asm:asm:9.6=jacocoAnt
org.pcollections:pcollections:3.1.4=annotationProcessor,errorprone,testAnnotationProcessor
org.reflections:reflections:0.10.2=checkstyle
empty=

View File

@@ -22,6 +22,7 @@ import com.beust.jcommander.JCommander;
import com.beust.jcommander.Parameter;
import com.beust.jcommander.Parameters;
import com.google.common.collect.ImmutableList;
import com.google.common.io.BaseEncoding;
import com.google.common.io.Files;
import com.google.common.io.Resources;
import io.netty.bootstrap.Bootstrap;
@@ -59,6 +60,8 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Locale;
import java.util.Random;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import org.bouncycastle.cert.X509CertificateHolder;
@@ -80,6 +83,11 @@ public class EppClient implements Runnable {
private static final String LOGIN_FILE = "login.xml";
private static final String LOGOUT_FILE = "logout.xml";
private static final String CONTACT_CREATE_FILE = "contact_create.xml";
private static final String DOMAIN_CREATE_FILE = "domain_create.xml";
static final AttributeKey<ArrayList<ZonedDateTime>> REQUEST_SENT =
AttributeKey.valueOf("REQUEST_SENT");
static final AttributeKey<ArrayList<ZonedDateTime>> RESPONSE_RECEIVED =
@@ -95,6 +103,7 @@ public class EppClient implements Runnable {
AttributeKey.valueOf("LOGGING_REQUEST_COMPLETE");
private static final int PORT = 700;
private static final int TIMEOUT_SECONDS = 600;
private static final Random random = new Random();
public static class InetAddressConverter implements IStringConverter<InetAddress> {
@@ -148,6 +157,16 @@ public class EppClient implements Runnable {
description = "Registrar password.")
private String password = "abcde12345";
@Parameter(
names = {"--domain_creates"},
description = "The number of domains to create.")
private int domainCreates = 0;
@Parameter(
names = {"--tld"},
description = "TLD to create domains on.")
private String tld = "test";
@Parameter(
names = {"--force_terminate", "-ft"},
description = "Whether to explicitly close the connection after receiving a logout response.")
@@ -164,17 +183,35 @@ public class EppClient implements Runnable {
eppClient.run();
}
private static String generateRandomString(int length) {
byte[] buffer = new byte[length];
random.nextBytes(buffer);
return BaseEncoding.base32().encode(buffer).toLowerCase(Locale.US);
}
private ImmutableList<String> makeInputList(ZonedDateTime now) {
ImmutableList.Builder<String> templatesList = ImmutableList.builder();
ImmutableList.Builder<String> inputList = ImmutableList.builder();
templatesList.add(readStringFromFile(LOGIN_FILE));
for (int i = 0; i < domainCreates; i++) {
String randomString = generateRandomString(5);
templatesList.add(
readStringFromFile(CONTACT_CREATE_FILE)
.replace("@@REPEAT_NUMBER@@", String.valueOf(i))
.replace("@@RANDOM@@", randomString));
templatesList.add(
readStringFromFile(DOMAIN_CREATE_FILE)
.replace("@@REPEAT_NUMBER@@", String.valueOf(i))
.replace("@@RANDOM@@", randomString));
}
templatesList.add(readStringFromFile(LOGOUT_FILE));
for (String template : templatesList.build()) {
inputList.add(
template
.replace("@@CLIENT@@", client)
.replace("@@PASSWORD@@", password)
.replace("@@NOW@@", now.toString()));
.replace("@@NOW@@", now.toString())
.replace("@@TLD@@", tld));
}
return inputList.build();
}
@@ -292,8 +329,9 @@ public class EppClient implements Runnable {
List<ChannelFuture> channelFutures = new ArrayList<>();
// Three requests: hello (from the proxy), login and logout.
int requestPerConnection = 3;
// Three requests: hello (from the proxy), login and logout plus additional configured EPP
// requests.
int requestPerConnection = 3 + (domainCreates * 2);
for (int i = 0; i < connections; i++) {
bootstrap.attr(CHANNEL_NUMBER, i);

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<create>
<contact:create
xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
<contact:id>@@RANDOM@@-@@CHANNEL_NUMBER@@-@@REPEAT_NUMBER@@</contact:id>
<contact:postalInfo type="int">
<contact:name>John Doe</contact:name>
<contact:org>Example, Inc.</contact:org>
<contact:addr>
<contact:street>111 Example Street</contact:street>
<contact:street></contact:street>
<contact:city>Los Angeles</contact:city>
<contact:sp>CA</contact:sp>
<contact:pc>90210</contact:pc>
<contact:cc>US</contact:cc>
</contact:addr>
</contact:postalInfo>
<contact:voice>+1.2020202022</contact:voice>
<contact:fax>+1.2022022022</contact:fax>
<contact:email>test@email.com</contact:email>
<contact:authInfo>
<contact:pw>somepassword</contact:pw>
</contact:authInfo>
</contact:create>
</create>
<clTRID>epp-client-contact-create-@@NOW@@-@@CHANNEL_NUMBER@@</clTRID>
</command>
</epp>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<create>
<domain:create
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>@@RANDOM@@-@@CHANNEL_NUMBER@@-@@REPEAT_NUMBER@@.@@TLD@@</domain:name>
<domain:period unit="y">1</domain:period>
<domain:ns>
<domain:hostObj>ns1.domain.com</domain:hostObj>
</domain:ns>
<domain:registrant>@@RANDOM@@-@@CHANNEL_NUMBER@@-@@REPEAT_NUMBER@@</domain:registrant>
<domain:contact type="admin">@@RANDOM@@-@@CHANNEL_NUMBER@@-@@REPEAT_NUMBER@@</domain:contact>
<domain:contact type="tech">@@RANDOM@@-@@CHANNEL_NUMBER@@-@@REPEAT_NUMBER@@</domain:contact>
<domain:authInfo>
<domain:pw>somepassword</domain:pw>
</domain:authInfo>
</domain:create>
</create>
<clTRID>epp-client-domain-create-@@NOW@@-@@CHANNEL_NUMBER@@</clTRID>
</command>
</epp>

View File

@@ -10,7 +10,7 @@ com.github.docker-java:docker-java-transport-zerodep:3.3.6=testCompileClasspath,
com.github.docker-java:docker-java-transport:3.3.6=testCompileClasspath,testRuntimeClasspath
com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone,testAnnotationProcessor
com.google.android:annotations:4.1.1.4=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:1.35.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:2.6.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api.grpc:proto-google-cloud-tasks-v2:2.44.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.134.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.134.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
@@ -25,7 +25,7 @@ com.google.auth:google-auth-library-oauth2-http:1.23.0=deploy_jar,runtimeClasspa
com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor
com.google.auto.value:auto-value-annotations:1.10.4=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.auto.value:auto-value-annotations:1.9=annotationProcessor,errorprone,testAnnotationProcessor
com.google.auto.value:auto-value:1.10.4=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.auto.value:auto-value:1.11.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.auto:auto-common:1.2.1=annotationProcessor,errorprone,testAnnotationProcessor
com.google.cloud:google-cloud-tasks:2.44.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
@@ -54,15 +54,15 @@ com.google.guava:guava:31.0.1-jre=checkstyle
com.google.guava:guava:32.1.1-jre=errorprone
com.google.guava:guava:33.0.0-jre=annotationProcessor,testAnnotationProcessor
com.google.guava:guava:33.1.0-jre=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.guava:guava:33.2.0-jre=compileClasspath,testCompileClasspath
com.google.guava:guava:33.2.1-jre=compileClasspath,testCompileClasspath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,checkstyle,compileClasspath,deploy_jar,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.42.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client:1.44.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.44.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client:1.44.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.inject:guice:5.1.0=annotationProcessor,errorprone,testAnnotationProcessor
com.google.j2objc:j2objc-annotations:1.3=checkstyle
com.google.j2objc:j2objc-annotations:3.0.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client:1.34.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client:1.36.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.protobuf:protobuf-java-util:3.25.3=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.protobuf:protobuf-java:3.19.6=annotationProcessor,errorprone,testAnnotationProcessor
com.google.protobuf:protobuf-java:3.25.3=deploy_jar,runtimeClasspath,testRuntimeClasspath

View File

@@ -10,7 +10,7 @@ com.github.docker-java:docker-java-transport-zerodep:3.3.6=testCompileClasspath,
com.github.docker-java:docker-java-transport:3.3.6=testCompileClasspath,testRuntimeClasspath
com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone,testAnnotationProcessor
com.google.android:annotations:4.1.1.4=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:1.35.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:2.6.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api.grpc:proto-google-cloud-tasks-v2:2.44.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.134.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.134.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
@@ -23,9 +23,10 @@ com.google.api:gax:2.48.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.auth:google-auth-library-credentials:1.23.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.auth:google-auth-library-oauth2-http:1.23.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor
com.google.auto.value:auto-value-annotations:1.10.4=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.auto.value:auto-value-annotations:1.10.4=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.auto.value:auto-value-annotations:1.11.0=compileClasspath
com.google.auto.value:auto-value-annotations:1.9=annotationProcessor,errorprone,testAnnotationProcessor
com.google.auto.value:auto-value:1.10.4=annotationProcessor,deploy_jar,runtimeClasspath,testAnnotationProcessor,testRuntimeClasspath
com.google.auto.value:auto-value:1.11.0=annotationProcessor,deploy_jar,runtimeClasspath,testAnnotationProcessor,testRuntimeClasspath
com.google.auto:auto-common:1.2.1=annotationProcessor,errorprone,testAnnotationProcessor
com.google.cloud:google-cloud-tasks:2.44.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
@@ -55,17 +56,17 @@ com.google.guava:guava:31.0.1-jre=checkstyle
com.google.guava:guava:32.1.1-jre=errorprone
com.google.guava:guava:33.0.0-jre=annotationProcessor,testAnnotationProcessor
com.google.guava:guava:33.1.0-jre=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.guava:guava:33.2.0-jre=compileClasspath,testCompileClasspath
com.google.guava:guava:33.2.1-jre=compileClasspath,testCompileClasspath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,checkstyle,compileClasspath,deploy_jar,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.42.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client:1.44.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.44.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.http-client:google-http-client:1.44.2=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.inject:guice:5.1.0=annotationProcessor,errorprone,testAnnotationProcessor
com.google.j2objc:j2objc-annotations:1.3=checkstyle
com.google.j2objc:j2objc-annotations:3.0.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.monitoring-client:contrib:1.0.7=testCompileClasspath,testRuntimeClasspath
com.google.monitoring-client:metrics:1.0.7=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client:1.34.1=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client:1.36.0=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.protobuf:protobuf-java-util:3.25.3=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.protobuf:protobuf-java:3.19.6=annotationProcessor,errorprone,testAnnotationProcessor
com.google.protobuf:protobuf-java:3.25.3=deploy_jar,runtimeClasspath,testRuntimeClasspath

View File

@@ -21,7 +21,7 @@ com.google.guava:failureaccess:1.0.2=compileClasspath,deploy_jar,runtimeClasspat
com.google.guava:guava-parent:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor
com.google.guava:guava:31.0.1-jre=checkstyle
com.google.guava:guava:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor
com.google.guava:guava:33.2.0-jre=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.guava:guava:33.2.1-jre=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=checkstyle,compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.inject:guice:5.1.0=annotationProcessor,errorprone,testAnnotationProcessor
com.google.j2objc:j2objc-annotations:1.3=checkstyle

View File

@@ -12,7 +12,7 @@ com.github.docker-java:docker-java-transport-zerodep:3.3.6=testCompileClasspath,
com.github.docker-java:docker-java-transport:3.3.6=testCompileClasspath,testRuntimeClasspath
com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone,testAnnotationProcessor
com.google.android:annotations:4.1.1.4=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:1.35.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:2.5.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:gapic-google-cloud-storage-v2:2.39.0-alpha=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:grpc-google-cloud-storage-v2:2.39.0-alpha=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:proto-google-cloud-storage-v2:2.39.0-alpha=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -33,7 +33,7 @@ com.google.auth:google-auth-library-oauth2-http:1.23.0=compileClasspath,deploy_j
com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor
com.google.auto.value:auto-value-annotations:1.10.4=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.auto.value:auto-value-annotations:1.9=annotationProcessor,errorprone,testAnnotationProcessor
com.google.auto.value:auto-value:1.10.4=annotationProcessor,deploy_jar,runtimeClasspath,testAnnotationProcessor,testRuntimeClasspath
com.google.auto.value:auto-value:1.11.0=annotationProcessor,deploy_jar,runtimeClasspath,testAnnotationProcessor,testRuntimeClasspath
com.google.auto:auto-common:1.2.1=annotationProcessor,errorprone,testAnnotationProcessor
com.google.cloud:google-cloud-core-grpc:2.38.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.cloud:google-cloud-core-http:2.38.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -64,13 +64,13 @@ com.google.guava:guava-parent:32.1.1-jre=errorprone
com.google.guava:guava:31.0.1-jre=checkstyle
com.google.guava:guava:32.1.1-jre=errorprone
com.google.guava:guava:33.0.0-jre=annotationProcessor,testAnnotationProcessor
com.google.guava:guava:33.1.0-jre=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.guava:guava:33.2.0-jre=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,checkstyle,compileClasspath,deploy_jar,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.44.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-appengine:1.44.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-jackson2:1.44.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client:1.44.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client:1.44.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.inject:guice:5.1.0=annotationProcessor,errorprone,testAnnotationProcessor
com.google.j2objc:j2objc-annotations:1.3=checkstyle
com.google.j2objc:j2objc-annotations:3.0.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath

View File

@@ -27,11 +27,10 @@ com.github.jnr:jnr-posix:3.1.19=compileClasspath,runtimeClasspath,testCompileCla
com.github.jnr:jnr-unixsocket:0.38.22=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.jnr:jnr-x86asm:1.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.android:annotations:4.1.1.4=runtimeClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-appengine:2.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-jackson2:2.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-java6:2.1.4=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-servlet:2.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:1.35.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:2.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:gapic-google-cloud-storage-v2:2.32.1-alpha=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:3.4.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.176.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -72,12 +71,11 @@ com.google.api:gax-grpc:2.48.1=compileClasspath,runtimeClasspath,testCompileClas
com.google.api:gax-httpjson:2.48.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api:gax:2.48.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-admin-directory:directory_v1-rev20240509-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-appengine:v1-rev20240415-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-bigquery:v2-rev20240229-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-bigquery:v2-rev20240423-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20240310-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dataflow:v1b3-rev20240218-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-drive:v2-rev393-1.25.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dataflow:v1b3-rev20240430-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dns:v1-rev20240419-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-drive:v3-rev20240521-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-gmail:v1-rev20240520-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-groupssettings:v1-rev20210624-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-healthcare:v1-rev20240130-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -130,9 +128,9 @@ com.google.guava:failureaccess:1.0.2=compileClasspath,runtimeClasspath,testCompi
com.google.guava:guava:33.2.0-android=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.gwt:gwt-user:2.10.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.43.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-appengine:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-appengine:1.43.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-jackson2:1.44.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-protobuf:1.44.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -142,7 +140,6 @@ com.google.j2objc:j2objc-annotations:3.0.0=compileClasspath,runtimeClasspath,tes
com.google.jsinterop:jsinterop-annotations:2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.monitoring-client:metrics:1.0.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.monitoring-client:stackdriver:1.0.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-appengine:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-java6:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-jetty:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-servlet:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -286,8 +283,8 @@ org.codehaus.mojo:animal-sniffer-annotations:1.23=runtimeClasspath,testRuntimeCl
org.conscrypt:conscrypt-openjdk-uber:2.5.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.eclipse.collections:eclipse-collections-api:11.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.eclipse.collections:eclipse-collections:11.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-core:10.13.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-database-postgresql:10.13.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-core:10.14.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-database-postgresql:10.14.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.glassfish.jaxb:jaxb-runtime:2.3.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.glassfish.jaxb:txw2:2.3.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.gwtproject:gwt-user:2.10.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -324,10 +321,10 @@ org.ow2.asm:asm-tree:9.2=compileClasspath,runtimeClasspath,testCompileClasspath,
org.ow2.asm:asm-util:9.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.ow2.asm:asm:9.2=compileClasspath,testCompileClasspath
org.ow2.asm:asm:9.6=runtimeClasspath,testRuntimeClasspath
org.postgresql:postgresql:42.7.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.postgresql:postgresql:42.7.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.rnorth.duct-tape:duct-tape:1.0.8=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:2.1.0-alpha1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-jdk14:2.1.0-alpha1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:2.0.13=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-jdk14:2.0.12=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.snakeyaml:snakeyaml-engine:2.1=runtimeClasspath,testRuntimeClasspath
org.testcontainers:database-commons:1.19.8=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.testcontainers:jdbc:1.19.8=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -337,10 +334,13 @@ org.threeten:threetenbp:1.6.9=compileClasspath,runtimeClasspath,testCompileClass
org.w3c.css:sac:1.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.xerial.snappy:snappy-java:1.1.10.4=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.yaml:snakeyaml:2.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-api:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-diagram:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-tools:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-utility:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-api:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-diagram:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-loader:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-postgresql:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-text:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-tools:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-utility:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
xerces:xmlParserAPIs:2.6.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
empty=annotationProcessor,providedCompile,providedRuntime,testAnnotationProcessor

View File

@@ -27,11 +27,10 @@ com.github.jnr:jnr-posix:3.1.19=compileClasspath,runtimeClasspath,testCompileCla
com.github.jnr:jnr-unixsocket:0.38.22=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.jnr:jnr-x86asm:1.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.android:annotations:4.1.1.4=runtimeClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-appengine:2.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-jackson2:2.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-java6:2.1.4=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-servlet:2.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:1.35.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:2.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:gapic-google-cloud-storage-v2:2.32.1-alpha=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:3.4.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.176.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -72,12 +71,11 @@ com.google.api:gax-grpc:2.48.1=compileClasspath,runtimeClasspath,testCompileClas
com.google.api:gax-httpjson:2.48.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api:gax:2.48.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-admin-directory:directory_v1-rev20240509-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-appengine:v1-rev20240415-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-bigquery:v2-rev20240229-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-bigquery:v2-rev20240423-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20240310-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dataflow:v1b3-rev20240218-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-drive:v2-rev393-1.25.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dataflow:v1b3-rev20240430-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dns:v1-rev20240419-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-drive:v3-rev20240521-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-gmail:v1-rev20240520-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-groupssettings:v1-rev20210624-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-healthcare:v1-rev20240130-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -130,9 +128,9 @@ com.google.guava:failureaccess:1.0.2=compileClasspath,runtimeClasspath,testCompi
com.google.guava:guava:33.2.0-android=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.gwt:gwt-user:2.10.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.43.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-appengine:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-appengine:1.43.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-jackson2:1.44.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-protobuf:1.44.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -142,7 +140,6 @@ com.google.j2objc:j2objc-annotations:3.0.0=compileClasspath,runtimeClasspath,tes
com.google.jsinterop:jsinterop-annotations:2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.monitoring-client:metrics:1.0.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.monitoring-client:stackdriver:1.0.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-appengine:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-java6:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-jetty:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-servlet:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -286,8 +283,8 @@ org.codehaus.mojo:animal-sniffer-annotations:1.23=runtimeClasspath,testRuntimeCl
org.conscrypt:conscrypt-openjdk-uber:2.5.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.eclipse.collections:eclipse-collections-api:11.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.eclipse.collections:eclipse-collections:11.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-core:10.13.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-database-postgresql:10.13.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-core:10.14.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-database-postgresql:10.14.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.glassfish.jaxb:jaxb-runtime:2.3.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.glassfish.jaxb:txw2:2.3.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.gwtproject:gwt-user:2.10.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -324,10 +321,10 @@ org.ow2.asm:asm-tree:9.2=compileClasspath,runtimeClasspath,testCompileClasspath,
org.ow2.asm:asm-util:9.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.ow2.asm:asm:9.2=compileClasspath,testCompileClasspath
org.ow2.asm:asm:9.6=runtimeClasspath,testRuntimeClasspath
org.postgresql:postgresql:42.7.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.postgresql:postgresql:42.7.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.rnorth.duct-tape:duct-tape:1.0.8=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:2.1.0-alpha1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-jdk14:2.1.0-alpha1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:2.0.13=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-jdk14:2.0.12=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.snakeyaml:snakeyaml-engine:2.1=runtimeClasspath,testRuntimeClasspath
org.testcontainers:database-commons:1.19.8=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.testcontainers:jdbc:1.19.8=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -337,10 +334,13 @@ org.threeten:threetenbp:1.6.9=compileClasspath,runtimeClasspath,testCompileClass
org.w3c.css:sac:1.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.xerial.snappy:snappy-java:1.1.10.4=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.yaml:snakeyaml:2.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-api:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-diagram:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-tools:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-utility:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-api:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-diagram:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-loader:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-postgresql:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-text:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-tools:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-utility:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
xerces:xmlParserAPIs:2.6.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
empty=annotationProcessor,providedCompile,providedRuntime,testAnnotationProcessor

View File

@@ -27,11 +27,10 @@ com.github.jnr:jnr-posix:3.1.19=compileClasspath,runtimeClasspath,testCompileCla
com.github.jnr:jnr-unixsocket:0.38.22=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.jnr:jnr-x86asm:1.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.android:annotations:4.1.1.4=runtimeClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-appengine:2.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-jackson2:2.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-java6:2.1.4=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-servlet:2.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:1.35.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:2.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:gapic-google-cloud-storage-v2:2.32.1-alpha=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:3.4.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.176.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -72,12 +71,11 @@ com.google.api:gax-grpc:2.48.1=compileClasspath,runtimeClasspath,testCompileClas
com.google.api:gax-httpjson:2.48.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api:gax:2.48.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-admin-directory:directory_v1-rev20240509-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-appengine:v1-rev20240415-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-bigquery:v2-rev20240229-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-bigquery:v2-rev20240423-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20240310-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dataflow:v1b3-rev20240218-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-drive:v2-rev393-1.25.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dataflow:v1b3-rev20240430-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dns:v1-rev20240419-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-drive:v3-rev20240521-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-gmail:v1-rev20240520-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-groupssettings:v1-rev20210624-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-healthcare:v1-rev20240130-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -130,9 +128,9 @@ com.google.guava:failureaccess:1.0.2=compileClasspath,runtimeClasspath,testCompi
com.google.guava:guava:33.2.0-android=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.gwt:gwt-user:2.10.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.43.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-appengine:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-appengine:1.43.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-jackson2:1.44.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-protobuf:1.44.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -142,7 +140,6 @@ com.google.j2objc:j2objc-annotations:3.0.0=compileClasspath,runtimeClasspath,tes
com.google.jsinterop:jsinterop-annotations:2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.monitoring-client:metrics:1.0.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.monitoring-client:stackdriver:1.0.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-appengine:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-java6:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-jetty:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-servlet:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -286,8 +283,8 @@ org.codehaus.mojo:animal-sniffer-annotations:1.23=runtimeClasspath,testRuntimeCl
org.conscrypt:conscrypt-openjdk-uber:2.5.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.eclipse.collections:eclipse-collections-api:11.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.eclipse.collections:eclipse-collections:11.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-core:10.13.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-database-postgresql:10.13.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-core:10.14.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-database-postgresql:10.14.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.glassfish.jaxb:jaxb-runtime:2.3.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.glassfish.jaxb:txw2:2.3.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.gwtproject:gwt-user:2.10.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -324,10 +321,10 @@ org.ow2.asm:asm-tree:9.2=compileClasspath,runtimeClasspath,testCompileClasspath,
org.ow2.asm:asm-util:9.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.ow2.asm:asm:9.2=compileClasspath,testCompileClasspath
org.ow2.asm:asm:9.6=runtimeClasspath,testRuntimeClasspath
org.postgresql:postgresql:42.7.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.postgresql:postgresql:42.7.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.rnorth.duct-tape:duct-tape:1.0.8=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:2.1.0-alpha1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-jdk14:2.1.0-alpha1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:2.0.13=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-jdk14:2.0.12=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.snakeyaml:snakeyaml-engine:2.1=runtimeClasspath,testRuntimeClasspath
org.testcontainers:database-commons:1.19.8=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.testcontainers:jdbc:1.19.8=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -337,10 +334,13 @@ org.threeten:threetenbp:1.6.9=compileClasspath,runtimeClasspath,testCompileClass
org.w3c.css:sac:1.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.xerial.snappy:snappy-java:1.1.10.4=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.yaml:snakeyaml:2.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-api:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-diagram:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-tools:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-utility:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-api:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-diagram:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-loader:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-postgresql:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-text:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-tools:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-utility:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
xerces:xmlParserAPIs:2.6.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
empty=annotationProcessor,providedCompile,providedRuntime,testAnnotationProcessor

View File

@@ -27,11 +27,10 @@ com.github.jnr:jnr-posix:3.1.19=compileClasspath,runtimeClasspath,testCompileCla
com.github.jnr:jnr-unixsocket:0.38.22=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.jnr:jnr-x86asm:1.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.android:annotations:4.1.1.4=runtimeClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-appengine:2.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-jackson2:2.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-java6:2.1.4=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-servlet:2.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:1.35.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:2.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:gapic-google-cloud-storage-v2:2.32.1-alpha=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:3.4.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.176.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -72,12 +71,11 @@ com.google.api:gax-grpc:2.48.1=compileClasspath,runtimeClasspath,testCompileClas
com.google.api:gax-httpjson:2.48.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api:gax:2.48.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-admin-directory:directory_v1-rev20240509-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-appengine:v1-rev20240415-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-bigquery:v2-rev20240229-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-bigquery:v2-rev20240423-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20240310-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dataflow:v1b3-rev20240218-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-drive:v2-rev393-1.25.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dataflow:v1b3-rev20240430-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dns:v1-rev20240419-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-drive:v3-rev20240521-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-gmail:v1-rev20240520-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-groupssettings:v1-rev20210624-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-healthcare:v1-rev20240130-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -130,9 +128,9 @@ com.google.guava:failureaccess:1.0.2=compileClasspath,runtimeClasspath,testCompi
com.google.guava:guava:33.2.0-android=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.gwt:gwt-user:2.10.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.43.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-appengine:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-appengine:1.43.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-jackson2:1.44.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-protobuf:1.44.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -142,7 +140,6 @@ com.google.j2objc:j2objc-annotations:3.0.0=compileClasspath,runtimeClasspath,tes
com.google.jsinterop:jsinterop-annotations:2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.monitoring-client:metrics:1.0.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.monitoring-client:stackdriver:1.0.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-appengine:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-java6:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-jetty:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-servlet:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -286,8 +283,8 @@ org.codehaus.mojo:animal-sniffer-annotations:1.23=runtimeClasspath,testRuntimeCl
org.conscrypt:conscrypt-openjdk-uber:2.5.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.eclipse.collections:eclipse-collections-api:11.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.eclipse.collections:eclipse-collections:11.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-core:10.13.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-database-postgresql:10.13.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-core:10.14.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-database-postgresql:10.14.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.glassfish.jaxb:jaxb-runtime:2.3.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.glassfish.jaxb:txw2:2.3.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.gwtproject:gwt-user:2.10.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -324,10 +321,10 @@ org.ow2.asm:asm-tree:9.2=compileClasspath,runtimeClasspath,testCompileClasspath,
org.ow2.asm:asm-util:9.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.ow2.asm:asm:9.2=compileClasspath,testCompileClasspath
org.ow2.asm:asm:9.6=runtimeClasspath,testRuntimeClasspath
org.postgresql:postgresql:42.7.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.postgresql:postgresql:42.7.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.rnorth.duct-tape:duct-tape:1.0.8=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:2.1.0-alpha1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-jdk14:2.1.0-alpha1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:2.0.13=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-jdk14:2.0.12=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.snakeyaml:snakeyaml-engine:2.1=runtimeClasspath,testRuntimeClasspath
org.testcontainers:database-commons:1.19.8=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.testcontainers:jdbc:1.19.8=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -337,10 +334,13 @@ org.threeten:threetenbp:1.6.9=compileClasspath,runtimeClasspath,testCompileClass
org.w3c.css:sac:1.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.xerial.snappy:snappy-java:1.1.10.4=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.yaml:snakeyaml:2.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-api:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-diagram:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-tools:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-utility:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-api:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-diagram:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-loader:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-postgresql:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-text:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-tools:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-utility:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
xerces:xmlParserAPIs:2.6.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
empty=annotationProcessor,providedCompile,providedRuntime,testAnnotationProcessor

View File

@@ -27,11 +27,10 @@ com.github.jnr:jnr-posix:3.1.19=compileClasspath,runtimeClasspath,testCompileCla
com.github.jnr:jnr-unixsocket:0.38.22=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.jnr:jnr-x86asm:1.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.android:annotations:4.1.1.4=runtimeClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-appengine:2.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-jackson2:2.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-java6:2.1.4=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client-servlet:2.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:1.35.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:2.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:gapic-google-cloud-storage-v2:2.32.1-alpha=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:3.4.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.176.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -72,12 +71,11 @@ com.google.api:gax-grpc:2.48.1=compileClasspath,runtimeClasspath,testCompileClas
com.google.api:gax-httpjson:2.48.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api:gax:2.48.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-admin-directory:directory_v1-rev20240509-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-appengine:v1-rev20240415-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-bigquery:v2-rev20240229-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-bigquery:v2-rev20240423-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-cloudresourcemanager:v1-rev20240310-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dataflow:v1b3-rev20240218-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-drive:v2-rev393-1.25.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dataflow:v1b3-rev20240430-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-dns:v1-rev20240419-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-drive:v3-rev20240521-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-gmail:v1-rev20240520-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-groupssettings:v1-rev20210624-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.apis:google-api-services-healthcare:v1-rev20240130-2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -130,9 +128,9 @@ com.google.guava:failureaccess:1.0.2=compileClasspath,runtimeClasspath,testCompi
com.google.guava:guava:33.2.0-android=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.gwt:gwt-user:2.10.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.43.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-appengine:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-appengine:1.43.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-jackson2:1.44.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-protobuf:1.44.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client:1.44.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -142,7 +140,6 @@ com.google.j2objc:j2objc-annotations:3.0.0=compileClasspath,runtimeClasspath,tes
com.google.jsinterop:jsinterop-annotations:2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.monitoring-client:metrics:1.0.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.monitoring-client:stackdriver:1.0.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-appengine:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-java6:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-jetty:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client-servlet:1.36.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -286,8 +283,8 @@ org.codehaus.mojo:animal-sniffer-annotations:1.23=runtimeClasspath,testRuntimeCl
org.conscrypt:conscrypt-openjdk-uber:2.5.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.eclipse.collections:eclipse-collections-api:11.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.eclipse.collections:eclipse-collections:11.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-core:10.13.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-database-postgresql:10.13.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-core:10.14.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.flywaydb:flyway-database-postgresql:10.14.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.glassfish.jaxb:jaxb-runtime:2.3.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.glassfish.jaxb:txw2:2.3.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.gwtproject:gwt-user:2.10.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -324,10 +321,10 @@ org.ow2.asm:asm-tree:9.2=compileClasspath,runtimeClasspath,testCompileClasspath,
org.ow2.asm:asm-util:9.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.ow2.asm:asm:9.2=compileClasspath,testCompileClasspath
org.ow2.asm:asm:9.6=runtimeClasspath,testRuntimeClasspath
org.postgresql:postgresql:42.7.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.postgresql:postgresql:42.7.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.rnorth.duct-tape:duct-tape:1.0.8=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:2.1.0-alpha1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-jdk14:2.1.0-alpha1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:2.0.13=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-jdk14:2.0.12=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.snakeyaml:snakeyaml-engine:2.1=runtimeClasspath,testRuntimeClasspath
org.testcontainers:database-commons:1.19.8=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.testcontainers:jdbc:1.19.8=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -337,10 +334,13 @@ org.threeten:threetenbp:1.6.9=compileClasspath,runtimeClasspath,testCompileClass
org.w3c.css:sac:1.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.xerial.snappy:snappy-java:1.1.10.4=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.yaml:snakeyaml:2.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-api:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-diagram:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-tools:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-utility:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler:16.10.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-api:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-diagram:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-loader:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-postgresql:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-text:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-tools:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler-utility:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
us.fatehi:schemacrawler:16.21.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
xerces:xmlParserAPIs:2.6.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
empty=annotationProcessor,providedCompile,providedRuntime,testAnnotationProcessor

View File

@@ -10,7 +10,7 @@ com.github.docker-java:docker-java-transport-zerodep:3.3.6=testCompileClasspath,
com.github.docker-java:docker-java-transport:3.3.6=testCompileClasspath,testRuntimeClasspath
com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone,testAnnotationProcessor
com.google.android:annotations:4.1.1.4=deploy_jar,runtimeClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:1.35.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api-client:google-api-client:2.6.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:proto-google-cloud-tasks-v2:2.44.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.134.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.134.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -25,7 +25,7 @@ com.google.auth:google-auth-library-oauth2-http:1.23.0=compileClasspath,deploy_j
com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor
com.google.auto.value:auto-value-annotations:1.10.4=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.auto.value:auto-value-annotations:1.9=annotationProcessor,errorprone,testAnnotationProcessor
com.google.auto.value:auto-value:1.10.4=annotationProcessor,deploy_jar,runtimeClasspath,testAnnotationProcessor,testRuntimeClasspath
com.google.auto.value:auto-value:1.11.0=annotationProcessor,deploy_jar,runtimeClasspath,testAnnotationProcessor,testRuntimeClasspath
com.google.auto:auto-common:1.2.1=annotationProcessor,errorprone,testAnnotationProcessor
com.google.cloud:google-cloud-tasks:2.44.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
@@ -49,20 +49,20 @@ com.google.googlejavaformat:google-java-format:1.5=annotationProcessor,testAnnot
com.google.guava:failureaccess:1.0.1=checkstyle,errorprone
com.google.guava:failureaccess:1.0.2=annotationProcessor,compileClasspath,deploy_jar,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
com.google.guava:guava-parent:32.1.1-jre=errorprone
com.google.guava:guava-testlib:33.2.0-jre=testCompileClasspath,testRuntimeClasspath
com.google.guava:guava-testlib:33.2.1-jre=testCompileClasspath,testRuntimeClasspath
com.google.guava:guava:31.0.1-jre=checkstyle
com.google.guava:guava:32.1.1-jre=errorprone
com.google.guava:guava:33.0.0-jre=annotationProcessor,testAnnotationProcessor
com.google.guava:guava:33.1.0-jre=compileClasspath,deploy_jar,runtimeClasspath
com.google.guava:guava:33.2.0-jre=testCompileClasspath,testRuntimeClasspath
com.google.guava:guava:33.2.1-jre=testCompileClasspath,testRuntimeClasspath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,checkstyle,compileClasspath,deploy_jar,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.42.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client:1.44.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-apache-v2:1.44.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client-gson:1.44.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.http-client:google-http-client:1.44.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.inject:guice:5.1.0=annotationProcessor,errorprone,testAnnotationProcessor
com.google.j2objc:j2objc-annotations:1.3=checkstyle
com.google.j2objc:j2objc-annotations:3.0.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client:1.34.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.oauth-client:google-oauth-client:1.36.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.protobuf:protobuf-java-util:3.25.3=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.google.protobuf:protobuf-java:3.19.6=annotationProcessor,errorprone,testAnnotationProcessor
com.google.protobuf:protobuf-java:3.25.3=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath