? *MIT 라이센스는 네트워크 배포를 가능하게하기 위해 플랫폼 에 적용됩니다. 나머지 프로젝트는 AGPL V3에 따라 남아 있습니다.
완전히 개방적이고 개인 정보를 친숙한 간단하지만 강력한 Google 태그 관리자 대안. 내장 된 Google Analytics 대안은 쿠키를 사용하지 않으며 완전히 GDPR, CCPA 및 PECR을 준수합니다. 우리는 데모를 시도하거나 단순히 프로덕션에서 직접 호스팅하는 것이 빠르고 쉽게 만들었습니다. 우리는 또한 가까운 시일 내에 클라우드 호스팅 버전을 제공 할 것입니다.
데이터 관리자는 플러그 가능한 백엔드를 제공하여 어디에서나 데이터를 보내고 커넥터와 기능을 모두 늘리기위한 파이프 라인이 있습니다. 몇 번의 클릭만으로 스키마를 설계하고 백엔드를 구성하고 엔드 포인트를 작성하여 데이터를 보냅니다. 태그 관리자는 이와 동일한 기본 기술을 사용하여 분석을 제공합니다.
우리의 임무는 커뮤니케이션 플랫폼 (커뮤니티에서 구축)을 통해 완전히 확장 할 수있는 직관적 인 태그 관리 도구를 만드는 것이 었습니다. 우리는 훌륭한 오픈 소스 소프트웨어를 구축하고 훨씬 대기업의 시장 점유율을 줄이는 데 열정적 인 작은 팀입니다. 우리는 기업 또는 정부 감시의 팬이 아니며, 귀하의 웹 사이트 사용자가 더 나은 가치가 있다고 생각합니다. 그러나 이는 공유되는 자산 및 개인 데이터를 수익을 창출하기 위해 비즈니스 요구 사항과 균형을 이루어야합니다.
다음은 Docker Compose를 이미 설치 한 경우 시작하는 방법에 대한 한 줄의 예입니다.
~ > curl -L https://github.com/scale8/scale8/raw/master/docker-compose.yml | docker-compose -f - up 위의 명령이 서비스를 시작하면 http://127.0.0.1:8080 에서 브라우저를 가리 킵니다. 프로젝트를 구성하기 위해 몇 가지 기본 세부 정보를 입력하라는 메시지가 표시됩니다.
또는 프로젝트를 이미 체크 아웃하고 ~> yarn install:all 및 로컬로 실행하고 싶습니다 : -
~ > yarn run:all우리는 전체 플랫폼을 설계하여 Docker를 지원하고 가능한 복잡한 빌드 프로세스 및 추가 볼륨 장착을 제한했습니다. 우리는 AWS, Google Cloud 및 Custom Kubernetes 설정 모두에 대한 완전한 원 클릭 프로덕션 준비 설정을 제공하기 위해 스크립팅하고 있습니다.
| 요소 | 설명 |
|---|---|
| API | 모든 비즈니스 로직을 포함하고 UI 전원을 공급하는 GraphQL / Restful 엔드 포인트를 제공합니다. |
| 흔한 | 프로젝트 구성 요소간에 공유되는 작은 공통 라이브러리 |
| 가장자리 | 수평으로 확장하도록 설계된 Edge Server는 Edge에서 플랫폼을 전달하고 데이터를 추적 할 책임이 있습니다. |
| 플랫폼 | Community 및 Scale8이 작성한 사용자 정의 플랫폼 및 태그 관리자의 기능을 확장합니다. |
| 라우터 | Nginx를 사용하여 만든 간단한 라우터. 자조 버전을 빠르게 회전하도록 설계되었습니다. |
| UI | Next.js & React를 사용하여 UI의 정적 빌드를 제공합니다. |
~> yarn install:all~> yarn build:all 모든 사람이 전체 태그 관리자를 사용해야하는 것은 아니기 때문에 몇 줄의 JavaScript 만 필요한 매우 가벼운 버전을 생성 할 수있는 옵션도 제공했습니다.
또한 단일 페이지 응용 프로그램 (SPA) 및 해시 라우팅을 추적하는 데 전폭적 인 지원을 제공했습니다. 응용 프로그램을 설치할 때 활성화 할 수 있습니다.
우리는 하나 이상의 웹 속성에서 태그를 구성하고 관리하는 프로세스를 단순화하기 위해 최선을 다했습니다. 태그 관리자는 이벤트 중심의 규칙 기반 엔진을 기반으로하며 이벤트 및 조건 및 예외가 모두 충족 될 때 규칙이 트리거되어 하나 이상의 작업을 수행하게됩니다.
브라우저 내의 트리거 된 이벤트는 간단한 인터페이스로 쉽게 관리 할 수 있습니다. 클릭 된 링크, 초점이 오는 페이지 또는 제출 된 양식은 모두 듣고 싶은 이벤트의 예입니다.
조건은 데이터 컨테이너에서 작성된 테스트이며 데이터 컨테이너 객체에 속하는 일부 키가 예상 값과 정렬되어 있다고 주장하는 것을 목표로합니다. 예외는 동일한 테스트를하는 것을 목표로하지만 대신 테스트 패스의 규칙을 제외합니다.
규칙의 필요한 사건과 조건을 충족하면 조치가 해고됩니다. 행동에 대해 자세히 알아보십시오.
우리는 원래 타입 스크립트 프론트 엔드와 스칼라 구동 백엔드로 시작했습니다. 우리가 원하는 코드 투명성을 제공하기 위해 프로젝트를 개방하기로 한 결정과 함께 Java의 Edge Server만으로 거의 순수한 TypeScript로 이동해야했습니다. 우리는이 프로젝트의 미래가 현재 오픈 소스 커뮤니티와 함께 있다고 믿고 있으며 Scala 엔지니어보다 더 많은 타입 스크립트 및 Java 엔지니어가 있습니다.
출시 직전에 우리는 CRA에서 Next.js로 옮겼습니다. 또한 타입 스크립트 백엔드에서 Control (IOC) 반전을 도입했습니다. 우리의 목표는이 프로젝트가 가능한 한 확장 가능한 것입니다. 플러그 앤 플레이 모델은 여러 서비스를 제공하고 잠금을 방지 할 수있는 기회를 제공합니다.
container . bind < BaseStorage > ( TYPES . BackendStorage ) . to ( MongoDBStorage ) . inSingletonScope ( ) ;
container . bind < BaseDatabase > ( TYPES . BackendDatabase ) . to ( MongoDb ) . inSingletonScope ( ) ;
container . bind < BaseLogger > ( TYPES . BackendLogger ) . to ( ConsoleLogger ) . inSingletonScope ( ) ;
container . bind < BaseEmail > ( TYPES . BackendEmail ) . to ( Mailer ) . inSingletonScope ( ) ;
container . bind < BaseConfig > ( TYPES . BackendConfig ) . to ( EnvironmentConfig ) . inSingletonScope ( ) ;우리는 Java 코드와 비슷한 접근 방식을 취했습니다.
@ Replaces ( StorageInterface . class )
@ Singleton
@ Requires ( property = "backend-storage" , value = "google" )
public class GoogleStorage implements StorageInterface {
...
}현재, 우리는 MongoDB와 Google의 BigQuery 만 분석을 제공합니다. MongoDB는 소규모 프로젝트와 데모 / 테스트 목적에만 적합합니다. 우리는 아직 출시되지 않은 클라우드 버전에서 완전한 클릭 하우스 지원을 받았으며,이 지원을 자체 호스팅 버전과 함께 Redshift 및 Postgres와 함께 추가 할 것입니다.
또한 자체 주최 버전에서 시간당 집계 파이프 라인을 제거했습니다. 이로 인해 대부분의 사용 사례에 대해 불필요한 정도의 복잡성이 추가되었습니다. 나중에 이것을 다시 소개 할 계획이 있으며 누군가가 필요하다면 알려주십시오.
모든 문서는 제품의 클라우드 버전 용으로 설계되었지만 곧 자체 호스팅 버전에 대한 자세한 설명서를 추가 할 예정입니다. 우리는 자체 주최 버전과 관련이없는 사용자 정의 도메인에 대한 지불 처리 및 SSL 종료와 같은 일부 기능을 숨겼습니다.
전체 UI는 APOLLO를 사용하여 GraphQL로 구동되며 API 문서는 자동으로 생성되고 쉽게 탐색됩니다.
우리가 묻는 것은 당신이 프로젝트를 좋아한다면 당신이 Github에서 이것을 별이나 보는 것입니다. 우리는 사람들이 이것에 대해 공유하고 블로그를 좋아합니다! 모든 문제는 Github에서 신속하게 응답 할 것이며, 다음에 어디로 가는지 알게되어 기쁩니다.
| 작가 | github | |
|---|---|---|
| 크리스토퍼 벡 | ||
| Alessandro Barzanti |