chore: rebrand project to crank
This commit is contained in:
@@ -7,12 +7,12 @@ version.workspace = true
|
||||
|
||||
[dependencies]
|
||||
axum.workspace = true
|
||||
mcpaas-core = { path = "../../crates/mcpaas-core" }
|
||||
mcpaas-mapping = { path = "../../crates/mcpaas-mapping" }
|
||||
mcpaas-proto = { path = "../../crates/mcpaas-proto" }
|
||||
mcpaas-registry = { path = "../../crates/mcpaas-registry" }
|
||||
mcpaas-runtime = { path = "../../crates/mcpaas-runtime" }
|
||||
mcpaas-schema = { path = "../../crates/mcpaas-schema" }
|
||||
crank-core = { path = "../../crates/crank-core" }
|
||||
crank-mapping = { path = "../../crates/crank-mapping" }
|
||||
crank-proto = { path = "../../crates/crank-proto" }
|
||||
crank-registry = { path = "../../crates/crank-registry" }
|
||||
crank-runtime = { path = "../../crates/crank-runtime" }
|
||||
crank-schema = { path = "../../crates/crank-schema" }
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
serde_yaml.workspace = true
|
||||
@@ -24,6 +24,6 @@ tracing-subscriber.workspace = true
|
||||
uuid.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
mcpaas-adapter-grpc = { path = "../../crates/mcpaas-adapter-grpc", features = ["test-support"] }
|
||||
crank-adapter-grpc = { path = "../../crates/crank-adapter-grpc", features = ["test-support"] }
|
||||
reqwest.workspace = true
|
||||
sqlx.workspace = true
|
||||
|
||||
@@ -18,7 +18,7 @@ WORKDIR /app
|
||||
|
||||
COPY --from=builder /app/target/release/admin-api /usr/local/bin/admin-api
|
||||
|
||||
ENV MCPAAS_ADMIN_BIND=0.0.0.0:3001
|
||||
ENV CRANK_ADMIN_BIND=0.0.0.0:3001
|
||||
|
||||
EXPOSE 3001
|
||||
|
||||
|
||||
@@ -80,14 +80,14 @@ mod tests {
|
||||
};
|
||||
|
||||
use axum::{Json, Router, routing::post};
|
||||
use mcpaas_adapter_grpc::test_support as grpc_test_support;
|
||||
use mcpaas_core::{
|
||||
use crank_adapter_grpc::test_support as grpc_test_support;
|
||||
use crank_core::{
|
||||
DescriptorId, ExecutionConfig, GraphqlOperationType, GraphqlTarget, GrpcTarget, HttpMethod,
|
||||
Protocol, RestTarget, Target, ToolDescription,
|
||||
};
|
||||
use mcpaas_mapping::{MappingRule, MappingSet};
|
||||
use mcpaas_registry::PostgresRegistry;
|
||||
use mcpaas_schema::{Schema, SchemaKind};
|
||||
use crank_mapping::{MappingRule, MappingSet};
|
||||
use crank_registry::PostgresRegistry;
|
||||
use crank_schema::{Schema, SchemaKind};
|
||||
use serde_json::{Value, json};
|
||||
use sqlx::{Executor, postgres::PgPoolOptions};
|
||||
use tokio::net::TcpListener;
|
||||
@@ -621,7 +621,7 @@ mod tests {
|
||||
|
||||
async fn test_registry() -> PostgresRegistry {
|
||||
let database_url = env::var("TEST_DATABASE_URL")
|
||||
.unwrap_or_else(|_| "postgres://rmcp:rmcp@127.0.0.1:5432/rmcp".to_owned());
|
||||
.unwrap_or_else(|_| "postgres://crank:crank@127.0.0.1:5432/crank".to_owned());
|
||||
let admin_pool = PgPoolOptions::new()
|
||||
.max_connections(1)
|
||||
.connect(&database_url)
|
||||
@@ -648,7 +648,7 @@ mod tests {
|
||||
|
||||
fn test_storage_root(name: &str) -> std::path::PathBuf {
|
||||
env::temp_dir().join(format!(
|
||||
"rmcp_admin_api_{name}_{}_{}",
|
||||
"crank_admin_api_{name}_{}_{}",
|
||||
std::process::id(),
|
||||
SystemTime::now()
|
||||
.duration_since(UNIX_EPOCH)
|
||||
|
||||
@@ -3,10 +3,10 @@ use axum::{
|
||||
http::StatusCode,
|
||||
response::{IntoResponse, Response},
|
||||
};
|
||||
use mcpaas_mapping::MappingError;
|
||||
use mcpaas_registry::RegistryError;
|
||||
use mcpaas_runtime::RuntimeError;
|
||||
use mcpaas_schema::SchemaError;
|
||||
use crank_mapping::MappingError;
|
||||
use crank_registry::RegistryError;
|
||||
use crank_runtime::RuntimeError;
|
||||
use crank_schema::SchemaError;
|
||||
use serde_json::{Value, json};
|
||||
use thiserror::Error;
|
||||
use tracing::{error, warn};
|
||||
|
||||
@@ -7,7 +7,7 @@ mod storage;
|
||||
|
||||
use std::{env, net::SocketAddr, path::PathBuf};
|
||||
|
||||
use mcpaas_registry::PostgresRegistry;
|
||||
use crank_registry::PostgresRegistry;
|
||||
use tokio::net::TcpListener;
|
||||
use tracing::info;
|
||||
|
||||
@@ -17,16 +17,16 @@ use crate::{app::build_app, service::AdminService, state::AppState};
|
||||
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
tracing_subscriber::fmt()
|
||||
.with_env_filter(
|
||||
env::var("MCPAAS_LOG_LEVEL")
|
||||
env::var("CRANK_LOG_LEVEL")
|
||||
.unwrap_or_else(|_| "admin_api=info,tower_http=info".into()),
|
||||
)
|
||||
.init();
|
||||
|
||||
let database_url = env::var("MCPAAS_DATABASE_URL")?;
|
||||
let database_url = env::var("CRANK_DATABASE_URL")?;
|
||||
let storage_root = PathBuf::from(
|
||||
env::var("MCPAAS_STORAGE_ROOT").unwrap_or_else(|_| "/var/lib/rmcp/storage".into()),
|
||||
env::var("CRANK_STORAGE_ROOT").unwrap_or_else(|_| "/var/lib/crank/storage".into()),
|
||||
);
|
||||
let bind_addr = env::var("MCPAAS_ADMIN_BIND").unwrap_or_else(|_| "0.0.0.0:3001".into());
|
||||
let bind_addr = env::var("CRANK_ADMIN_BIND").unwrap_or_else(|_| "0.0.0.0:3001".into());
|
||||
let socket_addr: SocketAddr = bind_addr.parse()?;
|
||||
let registry = PostgresRegistry::connect(&database_url).await?;
|
||||
let state = AppState {
|
||||
|
||||
@@ -96,7 +96,7 @@ pub async fn upload_input_json(
|
||||
.service
|
||||
.save_json_sample(
|
||||
&operation_id.as_str().into(),
|
||||
mcpaas_registry::SampleKind::InputJson,
|
||||
crank_registry::SampleKind::InputJson,
|
||||
&payload,
|
||||
)
|
||||
.await?;
|
||||
@@ -117,7 +117,7 @@ pub async fn upload_output_json(
|
||||
.service
|
||||
.save_json_sample(
|
||||
&operation_id.as_str().into(),
|
||||
mcpaas_registry::SampleKind::OutputJson,
|
||||
crank_registry::SampleKind::OutputJson,
|
||||
&payload,
|
||||
)
|
||||
.await?;
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
use std::path::PathBuf;
|
||||
|
||||
use mcpaas_core::{
|
||||
use crank_core::{
|
||||
AuthConfig, AuthKind, AuthProfile, AuthProfileId, ConfigExport, ExportMode, GeneratedDraft,
|
||||
GeneratedDraftStatus, OperationId, OperationStatus, Protocol, SampleId, Samples, Target,
|
||||
};
|
||||
use mcpaas_mapping::{JsonPathRoot, MappingSet, infer_mapping_from_samples};
|
||||
use mcpaas_proto::{ProtoService, services_from_descriptor_set_bytes};
|
||||
use mcpaas_registry::{
|
||||
use crank_mapping::{JsonPathRoot, MappingSet, infer_mapping_from_samples};
|
||||
use crank_proto::{ProtoService, services_from_descriptor_set_bytes};
|
||||
use crank_registry::{
|
||||
CreateVersionRequest, OperationSampleMetadata, OperationSummary, OperationVersionRecord,
|
||||
PostgresRegistry, PublishRequest, RegistryOperation, SampleKind, SaveAuthProfileRequest,
|
||||
SaveDescriptorMetadataRequest, SaveSampleMetadataRequest,
|
||||
};
|
||||
use mcpaas_runtime::{PreparedRequest, RuntimeError, RuntimeExecutor, RuntimeOperation};
|
||||
use mcpaas_schema::Schema;
|
||||
use crank_runtime::{PreparedRequest, RuntimeError, RuntimeExecutor, RuntimeOperation};
|
||||
use crank_schema::Schema;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::{Value, json};
|
||||
use time::{OffsetDateTime, format_description::well_known::Rfc3339};
|
||||
@@ -38,8 +38,8 @@ pub struct OperationPayload {
|
||||
pub output_schema: Schema,
|
||||
pub input_mapping: MappingSet,
|
||||
pub output_mapping: MappingSet,
|
||||
pub execution_config: mcpaas_core::ExecutionConfig,
|
||||
pub tool_description: mcpaas_core::ToolDescription,
|
||||
pub execution_config: crank_core::ExecutionConfig,
|
||||
pub tool_description: crank_core::ToolDescription,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize)]
|
||||
@@ -395,13 +395,13 @@ impl AdminService {
|
||||
|
||||
let services = services_from_descriptor_set_bytes(payload)
|
||||
.map_err(|error| ApiError::validation(error.to_string()))?;
|
||||
let descriptor_id = mcpaas_core::DescriptorId::new(new_prefixed_id("desc"));
|
||||
let descriptor_id = crank_core::DescriptorId::new(new_prefixed_id("desc"));
|
||||
let storage_ref = self
|
||||
.storage
|
||||
.write_descriptor(
|
||||
operation_id,
|
||||
summary.current_draft_version,
|
||||
mcpaas_registry::DescriptorKind::DescriptorSet,
|
||||
crank_registry::DescriptorKind::DescriptorSet,
|
||||
&descriptor_id,
|
||||
source_name,
|
||||
payload,
|
||||
@@ -410,11 +410,11 @@ impl AdminService {
|
||||
|
||||
self.registry
|
||||
.save_descriptor_metadata(SaveDescriptorMetadataRequest {
|
||||
descriptor: &mcpaas_registry::DescriptorMetadata {
|
||||
descriptor: &crank_registry::DescriptorMetadata {
|
||||
id: descriptor_id.clone(),
|
||||
operation_id: Some(operation_id.clone()),
|
||||
version: Some(summary.current_draft_version),
|
||||
descriptor_kind: mcpaas_registry::DescriptorKind::DescriptorSet,
|
||||
descriptor_kind: crank_registry::DescriptorKind::DescriptorSet,
|
||||
storage_ref,
|
||||
source_name: source_name.map(ToOwned::to_owned),
|
||||
package_index: Some(
|
||||
@@ -452,13 +452,13 @@ impl AdminService {
|
||||
));
|
||||
}
|
||||
|
||||
let descriptor_id = mcpaas_core::DescriptorId::new(new_prefixed_id("desc"));
|
||||
let descriptor_id = crank_core::DescriptorId::new(new_prefixed_id("desc"));
|
||||
let storage_ref = self
|
||||
.storage
|
||||
.write_descriptor(
|
||||
operation_id,
|
||||
summary.current_draft_version,
|
||||
mcpaas_registry::DescriptorKind::ProtoUpload,
|
||||
crank_registry::DescriptorKind::ProtoUpload,
|
||||
&descriptor_id,
|
||||
source_name,
|
||||
payload,
|
||||
@@ -467,11 +467,11 @@ impl AdminService {
|
||||
|
||||
self.registry
|
||||
.save_descriptor_metadata(SaveDescriptorMetadataRequest {
|
||||
descriptor: &mcpaas_registry::DescriptorMetadata {
|
||||
descriptor: &crank_registry::DescriptorMetadata {
|
||||
id: descriptor_id.clone(),
|
||||
operation_id: Some(operation_id.clone()),
|
||||
version: Some(summary.current_draft_version),
|
||||
descriptor_kind: mcpaas_registry::DescriptorKind::ProtoUpload,
|
||||
descriptor_kind: crank_registry::DescriptorKind::ProtoUpload,
|
||||
storage_ref,
|
||||
source_name: source_name.map(ToOwned::to_owned),
|
||||
package_index: None,
|
||||
@@ -513,7 +513,7 @@ impl AdminService {
|
||||
.into_iter()
|
||||
.rev()
|
||||
.find(|descriptor| {
|
||||
descriptor.descriptor_kind == mcpaas_registry::DescriptorKind::DescriptorSet
|
||||
descriptor.descriptor_kind == crank_registry::DescriptorKind::DescriptorSet
|
||||
})
|
||||
.ok_or_else(|| ApiError::not_found("descriptor set was not uploaded"))?;
|
||||
let bytes = self.storage.read_bytes(&descriptor.storage_ref).await?;
|
||||
@@ -809,10 +809,10 @@ impl AdminService {
|
||||
fn build_request_preview(
|
||||
mapping: &MappingSet,
|
||||
input: &Value,
|
||||
) -> Result<Value, mcpaas_mapping::MappingError> {
|
||||
) -> Result<Value, crank_mapping::MappingError> {
|
||||
let mapped = mapping.apply(&json!({ "mcp": input }))?;
|
||||
let prepared = PreparedRequest::from_mapping_output(&mapped).map_err(|error| {
|
||||
mcpaas_mapping::MappingError::InvalidJsonPath {
|
||||
crank_mapping::MappingError::InvalidJsonPath {
|
||||
path: error.to_string(),
|
||||
}
|
||||
})?;
|
||||
@@ -890,9 +890,9 @@ fn proto_service_summary(service: ProtoService) -> Result<GrpcServiceSummary, Ap
|
||||
Ok(GrpcMethodSummary {
|
||||
name: method.name.clone(),
|
||||
kind: "unary".to_owned(),
|
||||
input_schema: mcpaas_proto::message_to_schema(&method.input)
|
||||
input_schema: crank_proto::message_to_schema(&method.input)
|
||||
.map_err(|error| ApiError::validation(error.to_string()))?,
|
||||
output_schema: mcpaas_proto::message_to_schema(&method.output)
|
||||
output_schema: crank_proto::message_to_schema(&method.output)
|
||||
.map_err(|error| ApiError::validation(error.to_string()))?,
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use std::path::{Path, PathBuf};
|
||||
|
||||
use mcpaas_core::{DescriptorId, OperationId, SampleId};
|
||||
use mcpaas_registry::{DescriptorKind, SampleKind};
|
||||
use crank_core::{DescriptorId, OperationId, SampleId};
|
||||
use crank_registry::{DescriptorKind, SampleKind};
|
||||
use serde_json::Value;
|
||||
use thiserror::Error;
|
||||
use tokio::fs;
|
||||
|
||||
@@ -7,9 +7,9 @@ version.workspace = true
|
||||
|
||||
[dependencies]
|
||||
axum.workspace = true
|
||||
mcpaas-registry = { path = "../../crates/mcpaas-registry" }
|
||||
mcpaas-runtime = { path = "../../crates/mcpaas-runtime" }
|
||||
mcpaas-schema = { path = "../../crates/mcpaas-schema" }
|
||||
crank-registry = { path = "../../crates/crank-registry" }
|
||||
crank-runtime = { path = "../../crates/crank-runtime" }
|
||||
crank-schema = { path = "../../crates/crank-schema" }
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
tokio = { workspace = true, features = ["sync"] }
|
||||
@@ -18,9 +18,9 @@ tracing-subscriber.workspace = true
|
||||
uuid.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
mcpaas-adapter-grpc = { path = "../../crates/mcpaas-adapter-grpc", features = ["test-support"] }
|
||||
mcpaas-core = { path = "../../crates/mcpaas-core" }
|
||||
mcpaas-mapping = { path = "../../crates/mcpaas-mapping" }
|
||||
mcpaas-schema = { path = "../../crates/mcpaas-schema" }
|
||||
crank-adapter-grpc = { path = "../../crates/crank-adapter-grpc", features = ["test-support"] }
|
||||
crank-core = { path = "../../crates/crank-core" }
|
||||
crank-mapping = { path = "../../crates/crank-mapping" }
|
||||
crank-schema = { path = "../../crates/crank-schema" }
|
||||
reqwest.workspace = true
|
||||
sqlx.workspace = true
|
||||
|
||||
@@ -18,7 +18,7 @@ WORKDIR /app
|
||||
|
||||
COPY --from=builder /app/target/release/mcp-server /usr/local/bin/mcp-server
|
||||
|
||||
ENV MCPAAS_MCP_BIND=0.0.0.0:3002
|
||||
ENV CRANK_MCP_BIND=0.0.0.0:3002
|
||||
|
||||
EXPOSE 3002
|
||||
|
||||
|
||||
+13
-13
@@ -10,8 +10,8 @@ use axum::{
|
||||
response::{IntoResponse, Response},
|
||||
routing::get,
|
||||
};
|
||||
use mcpaas_registry::{PostgresRegistry, RegistryOperation};
|
||||
use mcpaas_runtime::{RuntimeError, RuntimeExecutor, RuntimeOperation};
|
||||
use crank_registry::{PostgresRegistry, RegistryOperation};
|
||||
use crank_runtime::{RuntimeError, RuntimeExecutor, RuntimeOperation};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::{Value, json};
|
||||
|
||||
@@ -312,7 +312,7 @@ async fn handle_initialize(state: Arc<AppState>, message: &Value) -> Response {
|
||||
}
|
||||
},
|
||||
"serverInfo": {
|
||||
"name": "rmcp-mcp-server",
|
||||
"name": "crank-mcp-server",
|
||||
"version": env!("CARGO_PKG_VERSION")
|
||||
}
|
||||
}),
|
||||
@@ -480,9 +480,9 @@ fn tool_definition(operation: &RegistryOperation) -> Value {
|
||||
})
|
||||
}
|
||||
|
||||
fn schema_to_json_schema(schema: &mcpaas_schema::Schema) -> Value {
|
||||
fn schema_to_json_schema(schema: &crank_schema::Schema) -> Value {
|
||||
match schema.kind {
|
||||
mcpaas_schema::SchemaKind::Object => {
|
||||
crank_schema::SchemaKind::Object => {
|
||||
let mut properties = serde_json::Map::new();
|
||||
let mut required = Vec::new();
|
||||
|
||||
@@ -500,7 +500,7 @@ fn schema_to_json_schema(schema: &mcpaas_schema::Schema) -> Value {
|
||||
"required": required
|
||||
})
|
||||
}
|
||||
mcpaas_schema::SchemaKind::Array => json!({
|
||||
crank_schema::SchemaKind::Array => json!({
|
||||
"type": "array",
|
||||
"items": schema
|
||||
.items
|
||||
@@ -508,16 +508,16 @@ fn schema_to_json_schema(schema: &mcpaas_schema::Schema) -> Value {
|
||||
.map(schema_to_json_schema)
|
||||
.unwrap_or_else(|| json!({}))
|
||||
}),
|
||||
mcpaas_schema::SchemaKind::String => json!({ "type": "string" }),
|
||||
mcpaas_schema::SchemaKind::Integer => json!({ "type": "integer" }),
|
||||
mcpaas_schema::SchemaKind::Number => json!({ "type": "number" }),
|
||||
mcpaas_schema::SchemaKind::Boolean => json!({ "type": "boolean" }),
|
||||
mcpaas_schema::SchemaKind::Enum => json!({
|
||||
crank_schema::SchemaKind::String => json!({ "type": "string" }),
|
||||
crank_schema::SchemaKind::Integer => json!({ "type": "integer" }),
|
||||
crank_schema::SchemaKind::Number => json!({ "type": "number" }),
|
||||
crank_schema::SchemaKind::Boolean => json!({ "type": "boolean" }),
|
||||
crank_schema::SchemaKind::Enum => json!({
|
||||
"type": "string",
|
||||
"enum": schema.enum_values
|
||||
}),
|
||||
mcpaas_schema::SchemaKind::Null => json!({ "type": "null" }),
|
||||
mcpaas_schema::SchemaKind::Oneof => json!({
|
||||
crank_schema::SchemaKind::Null => json!({ "type": "null" }),
|
||||
crank_schema::SchemaKind::Oneof => json!({
|
||||
"anyOf": schema.variants.iter().map(schema_to_json_schema).collect::<Vec<_>>()
|
||||
}),
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ use std::{
|
||||
time::{Duration, Instant},
|
||||
};
|
||||
|
||||
use mcpaas_registry::{PostgresRegistry, RegistryError, RegistryOperation};
|
||||
use crank_registry::{PostgresRegistry, RegistryError, RegistryOperation};
|
||||
use tokio::sync::RwLock;
|
||||
use tracing::info;
|
||||
|
||||
|
||||
+17
-17
@@ -5,7 +5,7 @@ mod session;
|
||||
|
||||
use std::{env, net::SocketAddr, time::Duration};
|
||||
|
||||
use mcpaas_registry::PostgresRegistry;
|
||||
use crank_registry::PostgresRegistry;
|
||||
use tokio::net::TcpListener;
|
||||
use tracing::info;
|
||||
|
||||
@@ -15,15 +15,15 @@ use crate::app::build_app;
|
||||
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
tracing_subscriber::fmt()
|
||||
.with_env_filter(
|
||||
env::var("MCPAAS_LOG_LEVEL")
|
||||
env::var("CRANK_LOG_LEVEL")
|
||||
.unwrap_or_else(|_| "mcp_server=info,tower_http=info".into()),
|
||||
)
|
||||
.init();
|
||||
|
||||
let database_url = env::var("MCPAAS_DATABASE_URL")?;
|
||||
let bind_addr = env::var("MCPAAS_MCP_BIND").unwrap_or_else(|_| "0.0.0.0:3002".into());
|
||||
let public_base_url = env::var("MCPAAS_PUBLIC_BASE_URL").ok();
|
||||
let refresh_interval = env::var("MCPAAS_MCP_REFRESH_MS")
|
||||
let database_url = env::var("CRANK_DATABASE_URL")?;
|
||||
let bind_addr = env::var("CRANK_MCP_BIND").unwrap_or_else(|_| "0.0.0.0:3002".into());
|
||||
let public_base_url = env::var("CRANK_PUBLIC_BASE_URL").ok();
|
||||
let refresh_interval = env::var("CRANK_MCP_REFRESH_MS")
|
||||
.ok()
|
||||
.and_then(|value| value.parse::<u64>().ok())
|
||||
.map(Duration::from_millis)
|
||||
@@ -49,14 +49,14 @@ mod tests {
|
||||
};
|
||||
|
||||
use axum::{Json, Router, http::header, routing::post};
|
||||
use mcpaas_adapter_grpc::test_support as grpc_test_support;
|
||||
use mcpaas_core::{
|
||||
use crank_adapter_grpc::test_support as grpc_test_support;
|
||||
use crank_core::{
|
||||
DescriptorId, ExecutionConfig, GraphqlOperationType, GraphqlTarget, GrpcTarget, HttpMethod,
|
||||
Operation, OperationId, OperationStatus, Protocol, RestTarget, Target, ToolDescription,
|
||||
};
|
||||
use mcpaas_mapping::{MappingRule, MappingSet};
|
||||
use mcpaas_registry::{PostgresRegistry, PublishRequest};
|
||||
use mcpaas_schema::{Schema, SchemaKind};
|
||||
use crank_mapping::{MappingRule, MappingSet};
|
||||
use crank_registry::{PostgresRegistry, PublishRequest};
|
||||
use crank_schema::{Schema, SchemaKind};
|
||||
use serde_json::{Value, json};
|
||||
use sqlx::{Executor, postgres::PgPoolOptions};
|
||||
use tokio::net::TcpListener;
|
||||
@@ -86,7 +86,7 @@ mod tests {
|
||||
let base_url = spawn_mcp_server(build_app(
|
||||
registry,
|
||||
Duration::from_millis(0),
|
||||
Some("https://rmcp.example.com".to_owned()),
|
||||
Some("https://crank.example.com".to_owned()),
|
||||
))
|
||||
.await;
|
||||
let client = reqwest::Client::new();
|
||||
@@ -153,7 +153,7 @@ mod tests {
|
||||
let base_url = spawn_mcp_server(build_app(
|
||||
registry,
|
||||
Duration::from_millis(0),
|
||||
Some("https://rmcp.example.com".to_owned()),
|
||||
Some("https://crank.example.com".to_owned()),
|
||||
))
|
||||
.await;
|
||||
let client = reqwest::Client::new();
|
||||
@@ -207,7 +207,7 @@ mod tests {
|
||||
let base_url = spawn_mcp_server(build_app(
|
||||
registry,
|
||||
Duration::from_millis(0),
|
||||
Some("https://rmcp.example.com".to_owned()),
|
||||
Some("https://crank.example.com".to_owned()),
|
||||
))
|
||||
.await;
|
||||
let client = reqwest::Client::new();
|
||||
@@ -244,7 +244,7 @@ mod tests {
|
||||
let base_url = spawn_mcp_server(build_app(
|
||||
registry,
|
||||
Duration::from_millis(0),
|
||||
Some("https://rmcp.example.com".to_owned()),
|
||||
Some("https://crank.example.com".to_owned()),
|
||||
))
|
||||
.await;
|
||||
let client = reqwest::Client::new();
|
||||
@@ -297,7 +297,7 @@ mod tests {
|
||||
let base_url = spawn_mcp_server(build_app(
|
||||
registry.clone(),
|
||||
Duration::from_millis(0),
|
||||
Some("https://rmcp.example.com".to_owned()),
|
||||
Some("https://crank.example.com".to_owned()),
|
||||
))
|
||||
.await;
|
||||
let client = reqwest::Client::new();
|
||||
@@ -479,7 +479,7 @@ mod tests {
|
||||
|
||||
async fn test_registry() -> PostgresRegistry {
|
||||
let database_url = env::var("TEST_DATABASE_URL")
|
||||
.unwrap_or_else(|_| "postgres://rmcp:rmcp@127.0.0.1:5432/rmcp".to_owned());
|
||||
.unwrap_or_else(|_| "postgres://crank:crank@127.0.0.1:5432/crank".to_owned());
|
||||
let admin_pool = PgPoolOptions::new()
|
||||
.max_connections(1)
|
||||
.connect(&database_url)
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>RMCP Console</title>
|
||||
<title>Crank Console</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
Generated
+2
-2
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"name": "rmcp-ui",
|
||||
"name": "crank-ui",
|
||||
"version": "0.1.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "rmcp-ui",
|
||||
"name": "crank-ui",
|
||||
"version": "0.1.0",
|
||||
"dependencies": {
|
||||
"@hookform/resolvers": "^5.2.2",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "rmcp-ui",
|
||||
"name": "crank-ui",
|
||||
"private": true,
|
||||
"version": "0.1.0",
|
||||
"type": "module",
|
||||
|
||||
@@ -8,7 +8,7 @@ describe("buildOperationPayload", () => {
|
||||
...defaultOperationFormValues,
|
||||
restStaticHeadersText: JSON.stringify(
|
||||
{
|
||||
"x-app-source": "rmcp",
|
||||
"x-app-source": "crank",
|
||||
},
|
||||
null,
|
||||
2,
|
||||
@@ -26,7 +26,7 @@ describe("buildOperationPayload", () => {
|
||||
expect(payload.target.kind).toBe("rest");
|
||||
expect(payload.target.method).toBe("POST");
|
||||
expect(payload.target.static_headers).toEqual({
|
||||
"x-app-source": "rmcp",
|
||||
"x-app-source": "crank",
|
||||
});
|
||||
expect(payload.execution_config.headers).toEqual({
|
||||
"x-trace-id": "trace-123",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { OperationForm } from "../../features/operation-form/operation-form";
|
||||
|
||||
export function OperationCreatePage() {
|
||||
return <OperationForm actionBarContainerId="app-main-content" />;
|
||||
return <OperationForm actionBarContainerId="app-layout-main" />;
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ export function AppShell({ children }: AppShellProps) {
|
||||
</svg>
|
||||
</div>
|
||||
<div className="logo-text">
|
||||
<strong>MCPaaS</strong>
|
||||
<strong>Crank</strong>
|
||||
<span>Tool Console</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -107,7 +107,7 @@ export function AppShell({ children }: AppShellProps) {
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<div className="layout-main">
|
||||
<div className="layout-main" id="app-layout-main">
|
||||
<header className="topbar">
|
||||
<div className="breadcrumb">
|
||||
<span>{meta.section}</span>
|
||||
@@ -122,11 +122,13 @@ export function AppShell({ children }: AppShellProps) {
|
||||
</header>
|
||||
|
||||
<main className="main-content" id="app-main-content">
|
||||
<div className="page-header">
|
||||
<h1>{meta.heading}</h1>
|
||||
<p>{meta.subtitle}</p>
|
||||
<div className="main-content-inner">
|
||||
<div className="page-header">
|
||||
<h1>{meta.heading}</h1>
|
||||
<p>{meta.subtitle}</p>
|
||||
</div>
|
||||
{children}
|
||||
</div>
|
||||
{children}
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+20
-13
@@ -318,9 +318,15 @@ button {
|
||||
.main-content {
|
||||
width: 100%;
|
||||
max-width: 1480px;
|
||||
padding: 28px;
|
||||
margin: 0 auto;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.main-content-inner {
|
||||
flex: 1;
|
||||
padding: 28px;
|
||||
}
|
||||
|
||||
.page-header {
|
||||
@@ -872,9 +878,6 @@ button {
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 16px;
|
||||
width: calc(100% + 56px);
|
||||
margin-left: -28px;
|
||||
margin-right: -28px;
|
||||
padding: 12px 28px;
|
||||
border-radius: 0;
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
@@ -1126,10 +1129,14 @@ pre {
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
.main-content {
|
||||
.main-content-inner {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.sticky-action-bar {
|
||||
padding-inline: 20px;
|
||||
}
|
||||
|
||||
.builder-content {
|
||||
max-width: none;
|
||||
}
|
||||
@@ -1154,18 +1161,18 @@ pre {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.main-content-inner {
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.sticky-action-bar {
|
||||
padding-inline: 16px;
|
||||
}
|
||||
|
||||
.builder-card-header,
|
||||
.builder-card-body,
|
||||
.page-section {
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
}
|
||||
|
||||
.sticky-action-bar {
|
||||
width: calc(100% + 32px);
|
||||
margin-left: -16px;
|
||||
margin-right: -16px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user