fix(db): SSL certificates table and model
- server_id is a foreign id - server_id must be unique as each server can only have 1 CA cert - resource_id must be unique as each resource can only have 1 SSL cert
This commit is contained in:
@@ -11,6 +11,7 @@ class SslCertificate extends Model
|
|||||||
'ssl_private_key',
|
'ssl_private_key',
|
||||||
'resource_type',
|
'resource_type',
|
||||||
'resource_id',
|
'resource_id',
|
||||||
|
'server_id',
|
||||||
'valid_until',
|
'valid_until',
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -24,4 +25,9 @@ class SslCertificate extends Model
|
|||||||
{
|
{
|
||||||
return $this->morphTo();
|
return $this->morphTo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function server()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Server::class);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,10 +14,12 @@ return new class extends Migration
|
|||||||
$table->text('ssl_private_key');
|
$table->text('ssl_private_key');
|
||||||
$table->string('resource_type')->nullable();
|
$table->string('resource_type')->nullable();
|
||||||
$table->unsignedBigInteger('resource_id')->nullable();
|
$table->unsignedBigInteger('resource_id')->nullable();
|
||||||
$table->timestamp('valid_until')->nullable();
|
$table->unsignedBigInteger('server_id')->nullable();
|
||||||
|
$table->timestamp('valid_until');
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|
||||||
$table->index(['resource_type', 'resource_id']);
|
$table->foreign('server_id')->references('id')->on('servers');
|
||||||
|
$table->unique(['server_id', 'resource_id']);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user