Nossa indústria é para resolver problemas. Geralmente buscamos elegância e facilidade de manutenção, mas às vezes, você só precisa de um hack rápido para fazer algo.
Qualquer um de vocês que já trabalhou no Workamajig sabe que ele tem uma das interfaces menos amigáveis e um problema ainda maior para quem procura integração: Sem acesso à API. Acontece que Workamajig é um aplicativo Flex. O Flex, na maioria dos casos, se comunica pelo AMF. O engraçado é que é um protocolo bem especificado e bem escrito. Então nós temos isso.
O segundo problema a resolver é que o Workamajig está por trás do SSL, o que significa que tentar farejar o conteúdo que chega pela rede por meio de um WireShark ou CharlesProxy é criptografado e, portanto, inútil. Entretanto, Charles nos dá a capacidade de adicionar um certificado raiz para executá-lo como um proxy man-in-the-middle para ler o conteúdo descriptografado no nível do cliente. E boom, podemos ler os dados AMF em bruto. Diga ao CharlesProxy para salvar a resposta da visualização, escreva um script rápido usando uma biblioteca de desserializador AMF simples e uma abundância de dados.
Com parte desse conhecimento, seria quase trivial escrever uma API customizada em torno do sistema Workamajig. Quase, porque não há documentação e você teria que capturar todas as solicitações de dados de seu interesse e colher os parâmetros reais que Workamajig está usando para obter seus dados e … bem, você entendeu.
Tudo isso para dizer, sempre pense diferente sobre os problemas que está tentando resolver. Normalmente, se você pensar fora da caixa, há maneiras de contornar a falta de acessibilidade aos dados que realmente interessam.