Changelog
O que há de novo.
Cada melhoria para a plataforma, como ele envia.
· SecurityService
Semente os direitos de administração IoT para os titulares CONFIGURE SYSTEM na inicialização que os introduz (IoT SP00)
O tour IoT não precisa de linhagem: cada Show Tour já está ligado para cada papel (fefd98c2).
· kamo-shared-library
Os oito tipos de notificação IoT, anexados (IoT SP00)
· kamo-shared-library
IotRights, o único proprietário regra cada portão IoT se aplica (IoT SP00)
· kamo-shared-library
Um membro do SI nunca detém os seis direitos de gestão da IoT (IoT SP00-D4)
· kamo-shared-library
Os direitos dos dispositivos de IoT (370-401) sob VER IOT DEVICES, e SHOW TOUR IOT (IoT SP00)
· kamo-shared-library
Aplicativo IoT Devices (40), dentro do limite PHI e nunca automático (IoT SP00)
· KlusterServices
Api.* esculpir para ganchos de fornecedores e o relé Alexa com um limite de tamanho webhook; segredos IoT documentados (IoT SP00)
· KlusterServices
Saída por defeito para o kamowsiot e o seu orçamento de perturbação (IoT SP00)
· KlusterServices
Autenticação do NATS svc iot, svc media iot.live.> Grant, fila de trabalho IOT EVENTS (IoT SP00)
· kamo-shared-library
A letra que uma regra de detecção de entrada ativada envia
SUSPICIOUS SIGNIN DETECTED junta-se aos modelos canônicos. Serviço de Segurança SuspiciousDetectionService o envia quando uma regra de detecção configurada pelo inquilino (limiar de logina falhada, anomalia geo, comutação rápida de IP, acesso fora de horas, sessões simultâneas) desencadeia com NOTIFY ADMIN EMAIL entre suas respostas; até agora essa resposta só escreveu uma linha de log. Cada valor influenciado pelo atacante usa seu gêmeo escapado (TemplateRenderer não escapa). Transporta a regra, o resultado, o ID da conta, o endereço, o país e as respostas aplicadas; nunca material credencial. SuspeitaSigninTemplateTest pinos de registro, semeadura e a variável contrato. EmailService semeia-o uma vez reconstruído para esta biblioteca.
· kamo-internal
Tipos de ramificações movem-se para Administração de Plataformas
Tipos de ramo (os modelos de segurança das organizações de crianças são criados sob, com seus papéis de segurança padrão, aplicativos e telas iniciais) foi uma guia sobre Configurações de cada organização -> Conta. O dono só quer o organização de plataforma para configurá-los, então agora é Administração de Plataforma -> Configuração -> Tipos de branch, abertos pelo novo MANAGEM BRANCH TYPES plataforma direita. SecurityService aplica o mesmo direito sobre os objetivos por detrás (serviço de segurança cc6639ef). - plataformaDireitos: o direito, a sua folha e a sua cor; direitosVisuais recebe o seu ícone. - A guia, seu link de menu e seu cartão de pouso agora sentar com o outro tabulações de plataforma. A página da conta perde a aba, e o branch- label carregador que existiu apenas para titulá-lo. Agora, reencaminha para a nova conta. antigos links e favoritos ainda pousar em algum lugar. - SecurityRoleManager pára de carregar todos os modelos de segurança quando o abre a janela do subdomínio. Nada rendeu o resultado, e seria agora ser um 403 para cada inquilino. Cordas: kamo-tradução-dicionário 9f084371.
· SecurityService
Tipos de ramificação e modelos de segurança são da plataforma para editar
Tipos de ramo, os modelos de segurança por trás deles (funções de segurança padrão, disponibilidade de aplicativos, telas iniciais, mercados comerciais, subdomínio config) e o modelo mestre costumava ser editável por qualquer organização Configurações -> Conta. O proprietário quer apenas a organização da plataforma para Prepara-os. Então, estes endpoints agora exigem o novo MANAGEM BRANCH TYPES plataforma à direita: - SecurityModelController e SecurityModelMarketController, toda a classe - MasterModelController, toda a classe - BranchTypeController /{id}/usages PlatformRightsResolver não responde nada dentro de um inquilino, então isso fecha Eles para todas as organizações, mas a plataforma não tem segunda verificação. Lista do BranchTypeController e /creatable permanecer aberto, porque o O assistente de criação de org lê-os. Os modelos existentes de um inquilino continuam a governar As suas orgias de crianças, já não podem ser editadas pelo inquilino. Precisa de uma biblioteca partilhada com kamo 0542057b (MANAGE BRANCH TYPES).
· kamo-shared-library
TERMOS DE GESTÃO
Tipos de ramo, e os modelos de segurança por trás deles, mover de cada Configurações da organização -> Conta para Administração de Plataformas -> Configuração. Esta é a plataforma direita que abre essa aba, e o O serviço de segurança correto fará cumprir os objetivos do modelo. Apareceu no final como todos os direitos anteriores. Teste de Direito do AiPlatform fixou os dois direitos AI como "os dois últimos", por isso agora Ordinais em vez disso, que é o que só apêndice realmente precisa.
· SecurityService
Envie um e-mail para o público da janela de aceitação quando uma nova liderança não for reclamada durante dois minutos
LeadDisponívelEmailSweep (a cada 15 s, singleton lease) encontra pistas que entrou na piscina há 2-15 minutos e ainda não foram reclamados, por org via ix leades org created, e envia LEADS AVAILable para todos os Aceitar-leader janela oferecer-lhes-ia. Uma pista aceita dentro dos dois minutos saiu da piscina e ninguém está escrito. LeadDisponívelEmailAudience aplica as próprias regras da janela por lead: Gasto/Receber titular, ativo, uma pessoa (não SI, não uma conta falsa), status DISPONÍVEL, aceitar porta clara, produto de crédito (a janela nunca abre para free-for-all), crédito org não suspenso, colocação ativa, crédito ou saldo infinito, sob Max Daily Spend, licenciado na Estado da propriedade. Os nomes das letras sobrenome e estado apenas. O Redis mantém- o uma vez por lead por membro (escrito antes do envio: no máximo uma vez) e uma letra por membro por período de silêncio de dois minutos; leva devido enquanto um membro descansa montar em sua próxima letra, então um volume importação é uma digest em vez de uma letra por tique. Necessidades compartilhadas-lib 9671cc7a e EmailService 0cdeb88 (template).
· EmailService
Antever a nova letra disponível
Adiciona o braço LEADS AVAILABLE à amostraVariáveis, construídos através do mesmo compartilhamento-lib LeadsDisponívelEmail helper SecurityService envia com, assim que o A antevisão do administrador mostra a letra que sai. A reconstrução também aumenta compartilhamento-lib 9671cc7a, que registra o modelo EmailService sementes e envia.
· kamo-shared-library
Uma carta para uma oferta de chumbo ninguém aceitou em dois minutos
LEADS AVAILABLE vai para todos a janela de aceitação-leader oferecida uma nova levar a quando ainda é não reclamado dois minutos depois. Ele nomeia o líder por sobrenome e estado e nada mais; LeadsDisponívelEmail constrói o variáveis (corpo escavado, assunto de linha única bruto, texto plural, primeiro dez linhas, em seguida, "e N mais") para a varredura do SecurityService e EmailService Previsão compartilhar um contrato.
· kamo-internal
Tours começam por si mesmos no login, um controlador turístico os orienta, e cada aplicativo na App Shelf começa o seu próprio
- Iniciar sessão: os passeios com algo novo agora COMEÇAR na plataforma de lançamento, uma vez por login - nenhuma oferta para clicar através. O modo de Deus já não os detém (para o dono), e tours são fechados sobre os direitos reais do membro, nunca Deus modo de "tudo". - O controlador (GuidedTourDock), inferior-direita acima de tudo o tour escurece: um anel para o progresso em cada tour em fila, os passos da turnê atual como segmentos para saltar para, Voltar / Pular passo / Autoplay / Pular turnê / Final tudo (pedido duas vezes), uma lista de capítulos de cada passeio e passo, e Minimise — a página volta e o passeio espera como uma esfera que retoma onde estava. Teclado: setas, S, P, Esc. - Autoplay: cada passo se move após um tempo de leitura (4,5-16 s por comprimento), realizada enquanto o O ponteiro repousa no cartão; a barra do cartão e o anel do controlador contam tudo. - O acabamento (GuiedTourCelebration): uma explosão de cores da organização e onde Retomar passeios, apenas quando uma excursão correu para o seu fim. - O cartão: mudanças animadas passo, passos como pontos clicáveis, mantém longe do controlador (placement.ts evitar), e empilha acima dele como uma folha em um telefone. - App Shelf: um botão de tour em cada linha do aplicativo (mostrado com um ponto até que o tour seja feito) e um botão "Take the ... tour" no cabeçalho do painel de cada aplicativo. - Tipos de ramo: um novo tipo de ramo começa com cada Show Tour certo Concedido para o seu humano tipos de funções (SecurityService fefd98c2 fez o mesmo para cada um existente). Toda a lógica de execução é pura em runModel.ts (próximo / volta através de passeios, skip tour / tudo, salto, progresso, tempo de leitura) e testado; GuiadoTourHost.test.tsx dirige o palco, teclado, Autoplay e controller terminam.
· SecurityService
Cada apresentação A direita da turnê está ligada por padrão — para cada função, cada modelo de branch-type, e todos já estão aqui
O primeiro lançamento semeou cada turnê apenas para papéis já segurando um direito em seu aplicativo e deixou todos os modelos de branch-type em Not Specified: 2.416 role rows holded no tour, existing os membros nunca foram oferecidos, e cada organização criada a partir de um tipo de filial começou sem nenhuma. Regra do proprietário: passeios são para todos, por mais tempo que eles têm foi membro. - SeedSettingFor: uma excursão à direita chega a cada papel. - modeloSeedSetting Para: CONCEBIDO em cada modelo de ramo humano (não ARTIFICIAL — um membro do SI nunca abre um navegador). - habilitarTourRightsOnce: UMA VEZ, muda cada turnê não especificada diretamente em, em cada papel e cada modelo humano; nega explicitamente são deixados sozinhos. Marcado feito por uma linha abaixo id de membro 0 em member ui preferences, então o administrador mais tarde não especifica sticks.
· kamo-shared-library
Expirar PendingForKey e encontrarFirstByPublicKeyAndStatus para as correções de inscrição
KamoCameraService retira os códigos pendentes mais antigos de um conector quando entrega um novo (um antigo código lido de um log poderia ser reivindicado em outra organização, deixando Alegação recusada) e responde a uma sondagem de estado do sítio activo que detém a chave. Métodos de consulta apenas; nenhuma mudança de esquema.
· kamo-internal
Cada endereço de e-mail abre uma janela de gravação, e cada número de telefone – configurações incluídas – abre Chamada / Texto
Endereços de e-mail, projecto amplo. <EmailAddress> é o e-mail duplo de <PhoneNumber>; pressionado, abre um desenho de popup: - Escreva abre a janela do compositor de e-mail endereçada a eles – nada é enviado até Enviar. - O segundo azulejo segue os registros: Chat para um colega, Chamada (número no dialpad, nunca discado) quando um número está no arquivo, Copiar caso contrário. - Quem é o endereço nos registos da organização (colega, contacto, chumbo — a caixa de correio procurar, uma vez, em aberto) com Lead aberto / Contato aberto / Ver perfil; pessoal provedor ou domínio da empresa; hora local do colega; uma verificação de erro ("gmial.com" → gmail.com, Escreva para isso em vez disso); noreply@ boxes só de envio não pode ser escrito; Copiar, Usar o meu aplicativo de e-mail; Teclas E / C / Y. As rotas de visão de chumbo Escreva através de sua guarda opt-out; uma superfície pode passar um compentWarning (Escreva então uma segunda prensa). Números de telefone, agora verdadeiramente em toda parte — incluindo o próprio da organização: Comportamento & Rotulagem e números livres de portagens e e-mail de contato, configurações de telefone membro, números de texto, números de telefone-sistema e fornecedores, chamadas de correio de voz, vendas de contato, o cartão de membro, o cartão correspondente de correio, o extensão do hex head, CRM softphone/contatos/história, reportar colunas de PHONE, console de chamadas AI e histórico de consentimento, preview de citação (icon-less, para que imprime como texto), linha de chamada do media player, e títulos de chamadas sem nome na linha do tempo principal. Motor partilhado **************************** ContactPopopover (posição, seta, armadilha de foco, chaves, imprensa externa), ContactHeader e peças, ContactTrigger, e ContactPopupHost — montado ao lado do ferramenta dock, ele tira o popup aberto de seu gatilho, então um aberto dentro de uma carta hover ou popover sobrevive ao fechamento da carta enquanto o ponteiro se move para ela. Um popup de cada vez em ambos tipos; uma mudança de rota fecha. Os gatilhos carregam GRID OWN CLICK para linhas de grade AG. Esquerda simples de propósito: valores dentro de uma opção de seleção, selecione, etiqueta ou uma linha que seja em si botão (UI de seleção); dentro de uma frase traduzida; a tela de chamada ao vivo e botões de discagem rápida; As listas de conversas e as placas de endereços dos próprios clientes SMS/mail; placeholders e-mail-template. O link "Use meu dispositivo" tel: agora carrega a extensão (;ext=). caixas de correioOs cartões de membros diálogo gatilho como um cartão de membro; ele agora ignora os gatilhos de endereço.
· kamo-shared-library
SHOW TOUR KAMO CAMERAS (369), e um hash de código de inscrição nunca é serializado
O bloco Show Tour (338-368) foi escrito enquanto KamoCameras (334-337) estava aterrissando, então o mais novo o grupo de segurança do aplicativo não teve direito de visitação e o teste de catálogo de viagens guiadas de kamo-internal grupo app) falhou contra ele. 369 é GRANDE e uma raiz autônoma como a outra 31; conta: 355 direitos, 78 independentes, 120 raízes, 32 passeios. 370 é o próximo livre. CameraInrollment.codeHash ganha @JsonIgnore: **************** (acrescentado ao principal Depois de as entidades da câmara aterrarem) sinaliza-a. Nada serializa inscrições hoje — o serviço respostas com mapas explícitos — mas um código hash é material credencial. Suite: 6659 testes; as falhas restantes (CarterStamp Teste ouro legado, AiAutonomyModeTest vocabulário de aprovação) também falha na origem / principal e não são câmeras.
· kamo-internal
A visita guiada por câmeras (SHOW TOUR KAMO CAMERAS, 369) — encontrando o menu, uma câmera, a grade, layouts salvos e as duas abas Configurações
· kamo-internal
Cada número de telefone na tela abre uma chamada / mensagem de texto
Qualquer número que o kamo-internal mostra — uma pista, um contacto, um mutuário, um cliente, um vendedor, um candidato, um colega, um interlocutor de mensagens de voz — é agora <Número de telefone>. Pressionado, abre um popup reutilizável: - Chamada abre (ou eleva) o softphone com o número no seu mostrador e pára Pronto. Nada é discado até que o membro pressione Ligue para o telefone. - O texto abre ou eleva o tópico SMS com esse número, intitulado com a pessoa. - Ao redor deles: o país do número e a hora local (código da área para EUA/Canadá, país em outro lugar) com um empurrão fora das 8 AM-9 PM, chamadas recentes com o número a partir do histórico que o telefone já detém, status live line, uma quando o registro diz que não está OK para texto, manipulação de extensão, cópia (nacional e internacional), hand-off para o próprio discador do dispositivo, C / T / Y atalhos, foco manteve-se dentro e retornou em Escape, redução de movimento consciente. Ligado à vista principal (pessoal + trabalho, ao lado do chip de consentimento de voz AI), telefone agente hipotecário, linha do tempo das comunicações de chumbo, contactos, a liderança do calendário painel, vista de conta, originador de empréstimos, pedidos de comércio/reservas/pedidos/ serviço, aplicações de gasodutos/reservas/clientes de retalho (grid + detalhe), carreiras candidatos, grade de membros da equipe, fornecedores/clientes POS, mesas de correio de voz e Linha reguladora de licenciamento. Duas armadilhas abertas softphone fixadas na ferramenta: open slockpoint (openInStore): - O núcleo das ferramentas MERGA os adereços de uma reabertura no único softphone, por isso, uma cabeça hexadecimal `autoDial: true` sobreviveu à sua chamada e discaria o próximo número colocado no Dialpad. 'AutoDial' agora é escopo para o pedido que o carrega. - ferramenta-core levantou um softphone MINIMIZED sem os novos adereços, então ele voltou com o número antigo. Os adereços são agora entregues. `prefillSeq` permite que o mesmo número seja colocado no dialpad novamente.
· kamo-internal
Configurações do KamoCameras — Configuração do site (incluir um conector em três etapas, cartões do site), Câmeras (ligar/desligar e áudio, organizador de grupos de arrastar e soltar), detalhes do site (supervisionar, descobrir, câmeras, sistemas de câmera, configurações go2rtc avançadas com histórico, diagnósticos), páginas de câmera e grupo com uma guia de segurança compartilhada, menu e entradas de pouso
Regras puras em app/lib/cameraSettings.ts com testes: formatação e validação de código de inscrição (alfabeto do SiteKeys), conector de download pick per OS/arch, install commands, the managed api:/rtsp: YAML guard, access-rule set sort/diff, campos de descoberta e tipo descoberta -> mapeamento tipo fonte, mascaramento de senha para exibição e em logs, grupos organizador move, config aplica estado com versões lidas como números (Java longs chegam como strings).
· kamo-internal
O visualizador da câmera — Menu de navegação das câmeras, janela da ferramenta de câmeras ao vivo e seu navegador maximizado
- Ferramenta de navegação 'câmeras' (app + VER CAMERAS): layouts salvos, grupos (cada um expandindo para suas câmeras), câmeras não agrupadas com um ponto de status, Visualizador aberto, Gerenciar câmeras para qualquer administrador direito; ao vivo via useOrgChanges('câmeras'); uma carga falha é uma linha de repetição, nunca 'sem câmeras'; o estado vazio explica que um administrador escolhe quem pode assistir. temAnySettingsRight += **************************** Câmaras de lançamento fixas. - Janela de ferramentas 'câmeras' (máximo 6, 1000x690): parede WebRTC sobre sinalização não trickle de uma viagem redonda; grades auto/1/2x2/3x3/4x4/1+5/1+7; sub- stream na grade, principal para uma telha expandida ou a única azulejo de uma janela maximizada; somente a peça selecionada é ouvida (MUTED/UNMUTED/AUTO=focused); reprodução automática mudada com um retorno do 'click- for- sound'; reconexão exponencial capotada; nenhuma sessão para uma Minimizar, cobrir ou esconder uma janela, uma telha coberta, um local offline ou uma câmara desligada; site offline retoma em tempo real; adicionar/remover/drag-swap, salvar layout (atualizar / salvar como novo) e apagar; as janelas do grupo seguem o seu grupo; os adereços são a view (tool:patchProps) e o título segue. - Maximizado tipo navegador 'câmeras': CameraSwitcherColumn (layouts / grupos / câmeras, linha ativa por sessionGuid, + abre um novo visualizador maximizado), threaded através da loja de largura, painel, tira de tabulação, doca e testes. - Decisões puras em app/lib/cameraViewer.ts com testes; ciclo de vida do fluxo testado em jsdom.
· kamo-internal
Visitas guiadas a bordo para cada aplicativo, oferecidas no momento da entrada e reconhecíveis na prateleira do aplicativo
Uma visita por grupo de segurança de aplicativos — 31, desde Relacionamentos com Clientes até Assinaturas E — cada gated no aplicativo que está ligado, o membro ser capaz de abri-lo, e o novo aplicativo "Show Tour" à direita (SHOW TOUR <APP>, shared-lib 582704f2). Cada passo é fechado novamente à direita atrás do que aponta, para que um membro nunca passe por uma característica Eles não têm. No login (uma vez por token de sessão, na plataforma de lançamento) o membro é oferecido os passeios com algo novo para eles: passos já vistos ou ignorados em QUALQUER organização são (SecurityService /api/security/guide-tours mantém a história de uma pessoa a nível dos membros). Iniciar as viagens escolhidas por sua vez; Não agora pergunta novamente a seguir Não ofereça estas marcas ignoradas. A App Shelf oferece o tour de cada aplicativo sob o aplicativo, e uma coleção de Tours guiados lista cada turnê com seu status, então Qualquer um deles pode ser tomado novamente à vontade. A sobreposição (GuiedTourHost): navega para a página de cada passo, espera pela sua âncora, rola-o em vista, escurece o resto com um holofote e um anel pulsante, coloca um cartão ancorado com uma seta em qualquer lado tem espaço (uma folha inferior em um telefone), mantém o inerte da página, exceto nos passos do clique para continuar (onde o Next faz o clique), segue o elemento cada quadro, volta para um cartão central quando o elemento nunca aparece e suporta as teclas Back/Next/Seta/Escape, foco e movimento reduzido. Páginas ganharam âncoras de data-tour somente (edições somente de atributos, 66 arquivos). A cópia está na dicionário sob guiaTours.* (kamo-tradução-dictionary 52b1229c), escrito para leitores não técnicos, white-label, e dizendo SI em vez de AI — o teste de catálogo aplica ambos, além de que todos os direitos, âncora, página e chave de cópia existe um nome de turnê. E-Assinaturas, Varejo, Alugueis e Aquisições agora têm um grupo de segurança (cada detenção seu Show Tour); o espelho de direitos TS carrega todos os 31 direitos de turnê.
· SecurityService
Lembre-se de passos de tour guiados por pessoa em todas as organizações, e semeie cada Show Tour direito
GET /api/security/guided-tours respostas que partem da turnê que a pessoa tem foi mostrado ou ignorado, como a união sobre cada membro do mesmo usuário — um passo visto em uma organização é visto na próxima. POST /tours guiado/passos marca passos na linha de assinatura da associação orientadaTours in member ui preferences (no new tabela), read-merge-write em uma transação com @RetryOnDbConflito para duas abas não podem apagar-se uns aos outros. Regras no GuiadoTourProgress: visto outranks puled, the A primeira data é mantida, os IDs são validados e limitados. Seu próprio caminho em vez de um ui-preferences chave, então uma turnê em execução publica sob tours guiados, que nada ouve, em vez de membros. RoleRightsSyncService semeia cada SHOW TOUR <APP> em sua primeira inicialização para quem segura qualquer direito nesse aplicativo, seus aplicativos aninhados ou (para um aplicativo aninhado) seus pais; Assinaturas eletrónicas, que não tem direito próprio, sementes de Documentos. Os dois direitos de acompanhamento dos membros nunca são uma fonte.
· kamo-shared-library
A Show Tour right for every app security group (338-368)
SHOW TOUR <APP>, um por grupo de aplicações — trinta e um, assinaturas eletrónicas — cada uma root standalone arquivado sob seu aplicativo, rotulado "Show Tour", e CONCEBIDO por padrão assim, um papel criado a partir de agora oferece aos seus membros cada turnê. Só decide se o membro é acompanhado pela visita guiada do aplicativo no sign-in e oferecido na prateleira da aplicação; cada passo da excursão é fechado separadamente na direita atrás do que ele mostra, então o direito não concede dados e nenhuma capacidade. RoleRightType.tourRightFor(app) / isTourRight() encontra-os pelo nome; RoleRightHierarchyTest pins que nome, aplicativo e forma concordam. Contagens: valores 323 -> 354, standalone 46 -> 77, raizes 88 -> 119. A próxima identificação grátis é 369.
· kamo-internal
Fundação — KAMO CAMERAS (39) e direitos 334-337 espelhados, isKamoCameras, BFF proxies, camerasApi, openCameraWindow
· kamo-shared-library
Os convidados de uma reunião apagada recebem a carta de cancelamento da organização
O convite e a atualização foram cartas de marca; o cancelamento foi um Uma linha "foi cancelada". Adicionar calendário.meeting canceled ao lado deles: o Mesmo papel timbrado, a reunião terminou quando estava programada para, o METODO:CANCEL .ics que o remove do calendário do hóspede, e nenhuma associação Um botão para um quarto onde ninguém estará. Sementes com o outro canónico templates, então uma organização existente o obtém na primeira utilização.

Seu universo está esperando.
Comece gratuitamente em minutos.Adicione produtos sempre que estiver pronto — sem migração, sem novos logins.
Gratuito para sempre — não é necessário cartão de crédito