Que alcance con la API Key: direccion por defecto al estilo S3 - #3
Open
thomyluca wants to merge 2 commits into
Open
Que alcance con la API Key: direccion por defecto al estilo S3#3thomyluca wants to merge 2 commits into
thomyluca wants to merge 2 commits into
Conversation
Pedido del equipo. La forma es la de S3: el cliente lleva adentro una direccion
conocida y lo que aporta el usuario son las credenciales. Como la API Key ya
identifica el entorno, la direccion no tiene que hacerlo, y
new CaerusClient({ apiKey }) alcanza.
endpoint queda como escape para lo que no sea el Caerus hospedado, uno propio o
uno local, que es el --endpoint-url de la CLI de AWS. La precedencia es
explicito, entorno, default: un valor escrito en el codigo nunca lo pisa una
variable que puso otro en la maquina.
OJO, y esta en el documento de arquitectura: DEFAULT_ENDPOINT le llega a todo el
que no la sobrescriba, asi que solo puede tener una direccion comprobada. Hoy
api.caerus.dev:443 NO responde: resuelve por DNS y acepta el TCP, pero corta el
handshake TLS igual que un subdominio inventado, y lo mismo grpc, sre y engine.
Solo caerus.dev contesta, con http/1.1, asi que tampoco sirve para gRPC.
Por eso esto no se publica hasta que Gonza confirme la direccion y la verifique
yo. El mecanismo queda listo; lo unico pendiente es el valor de la constante.
caerus.dev.ar.sdk.apps.disilab.ar:443, que la paso Gonza. Reemplaza a api.caerus.dev:443, que no existia. Verificado hasta donde se puede hoy: el host acepta TLS con certificado valido y negocia h2, asi que gRPC puede pasar por ahi, y una llamada del SDK sin pasar endpoint llega efectivamente al servidor. Pero el despliegue esta caido: contesta 502 tanto el gRPC como el REST de swagger. O sea que el ingress responde y no hay backend sano detras. Por eso esto no se publica todavia; falta una llamada real que termine bien.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Qué hace
Lo que pidió Gonza:
new CaerusClient({ apiKey })y nada más.La forma es la de S3 — el cliente lleva adentro una dirección conocida y lo que aporta
el usuario son las credenciales. Como la API Key ya identifica el entorno, la dirección
no tiene que hacerlo.
endpointqueda como escape para lo que no sea el Caerus hospedado: uno propio, o unolocal. Es el
--endpoint-urlde la CLI de AWS y existe por el mismo motivo.Precedencia: explícito →
CAERUS_ENDPOINT→DEFAULT_ENDPOINT. Un valor escrito enel código nunca lo pisa una variable que puso otro en la máquina.
⛔ Esto no se puede publicar todavía
DEFAULT_ENDPOINTle llega a todo el que no la sobrescriba, así que solo puedecontener una dirección comprobada. Y la que está hoy no responde:
api.caerus.dev:443grpc.caerus.dev:443sre.caerus.dev:443engine.caerus.dev:443inventado-9x7q.caerus.dev:443caerus.dev:443http/1.1, certificado válidoregistry.npmjs.org:443(control)h2, certificado válidoLos cuatro candidatos se comportan idéntico a un subdominio que inventé al azar, que
es lo que pasa cuando el balanceador acepta cualquier nombre y corta al no encontrar
ruta. Y
caerus.devresponde pero negociahttp/1.1: sin HTTP/2 no hay gRPC posible.Si esto se publica así,
new CaerusClient({ apiKey })—justo lo que el PR promete— lefalla a quien lo instale con un error de conexión que no explica nada.
Gonza: ¿cuál es la dirección, y está levantada? Cambio la constante, verifico que
acepte TLS y negocie
h2, y ahí sí publicamos.Verificado
110 tests, build limpio,
check-public-apipasa. Y contra el motor local corriendo:precedencia en los tres niveles,
takeMany, stock,confirm. 6 de 6.Lo que no se puede verificar todavía es el default, por lo de arriba.