
db.auth('root', 'example');
var radarDb = db.getSiblingDB('radar');
radarDb.entities.insert({ 
    "_id": ObjectId("5d5188985d0af00006e8c77e"),
    "name":"AXA France",
    "adminList":[ 
       "demo@axa.fr"
    ],
    "technologies": [ 
        { 
            "technology": ObjectId("5d527d8f13de705049bc298c"),
            "status":"Reinforce",
            "scope":"",
            "entityTechnologyUrls":[ 
            { 
                "label":"why-choose-dotnet",
                "url":"https://dotnet.microsoft.com/platform/why-choose-dotnet"
            }
            ],
            "_id": ObjectId("5d53d99b87af9d0c8e68ea97")
        },
        { 
            "technology": ObjectId("5d942527280ba50001ab0948"),
            "status":"Candidate",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943e29280ba50001ab096d")
        },
        { 
            "technology": ObjectId("5d942492280ba50001ab0942"),
            "status":"Out",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943e3a280ba50001ab096f")
        },
        { 
            "technology": ObjectId("5d9424c0280ba50001ab0944"),
            "status":"Assess",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943e45280ba50001ab0971")
        },
        { 
            "technology": ObjectId("5d942c30280ba50001ab0952"),
            "status":"Assess",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943e4d280ba50001ab0973")
        },
        { 
            "technology": ObjectId("5d942402280ba50001ab093e"),
            "status":"Out",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943e6d280ba50001ab0975")
        },
        { 
            "technology": ObjectId("5d9424e9280ba50001ab0946"),
            "status":"Excel",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943e74280ba50001ab0977")
        },
        { 
            "technology": ObjectId("5d9425fd280ba50001ab094a"),
            "status":"Candidate",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943e7e280ba50001ab0979")
        },
        { 
            "technology": ObjectId("5d942b8c280ba50001ab094e"),
            "status":"Deprecated",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943e89280ba50001ab097b")
        },
        { 
            "technology": ObjectId("5d942cad280ba50001ab0956"),
            "status":"Reinforce",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943e9c280ba50001ab097d")
        },
        { 
            "technology": ObjectId("5d942d1a280ba50001ab095a"),
            "status":"Assess",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943ea4280ba50001ab097f")
        },
        { 
            "technology": ObjectId("5d942be2280ba50001ab0950"),
            "status":"Excel",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943eab280ba50001ab0981")
        },
        { 
            "technology": ObjectId("5d942b63280ba50001ab094c"),
            "status":"Deprecated",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943eb6280ba50001ab0983")
        },
        { 
            "technology": ObjectId("5d942d58280ba50001ab095c"),
            "status":"Candidate",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943ebe280ba50001ab0985")
        },
        { 
            "technology": ObjectId("5d942d93280ba50001ab0960"),
            "status":"Candidate",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943ec5280ba50001ab0987")
        },
        { 
            "technology": ObjectId("5d942e43280ba50001ab0966"),
            "status":"Candidate",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943ecf280ba50001ab0989")
        },
        { 
            "technology": ObjectId("5d942d71280ba50001ab095e"),
            "status":"Assess",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943ef6280ba50001ab098b")
        },
        { 
            "technology": ObjectId("5d942db4280ba50001ab0962"),
            "status":"Candidate",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943efd280ba50001ab098d")
        },
        { 
            "technology": ObjectId("5d942456280ba50001ab0940"),
            "status":"Candidate",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943f1a280ba50001ab098f")
        },
        { 
            "technology": ObjectId("5d942d07280ba50001ab0958"),
            "status":"Reinforce",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943f22280ba50001ab0991")
        },
        { 
            "technology": ObjectId("5d942dea280ba50001ab0964"),
            "status":"Reinforce",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943f29280ba50001ab0993")
        },
        { 
            "technology": ObjectId("5d942c73280ba50001ab0954"),
            "status":"Assess",
            "scope":"",
            "entityTechnologyUrls":[ 

            ],
            "_id": ObjectId("5d943f33280ba50001ab0995")
        }
    ],
    "workflowUrl":"",
    "__v":0
 });
 radarDb.entities.insert({ 
    "_id": ObjectId("5d9422a1280ba50001ab093c"),
    "name":"AXA ASIA",
    "adminList":[ 
       "demo@axa.asia.com"
    ],
    "technologies":null,
    "workflowUrl":null,
    "__v":1
 });
 radarDb.entities.insert({ 
    "_id": ObjectId("5d942eca280ba50001ab0968"),
    "name":"AXA UK",
    "adminList":[ 
       "demo@axa.uk"
    ],
    "technologies":null,
    "workflowUrl":null,
    "__v":1
 });
 radarDb.entities.insert({ 
    "_id": ObjectId("5d942ee0280ba50001ab0969"),
    "name":"AXA LIFE JAPAN",
    "adminList":[ 
       "demo@axa.co.jp"
    ],
    "technologies":null,
    "workflowUrl":null,
    "__v":1
 });
radarDb.users.insert({
    "_id": ObjectId("5d5187c95d0af00006e8c77a"),
    "name": "demo",
    "email": "demo@axa.fr",
    "entityList": [
        "5d5188985d0af00006e8c77e"
    ],
    "role": "root",
    "passwordHash": "kIPCgx1d5RrLUFpkRV/4d885dMBXCJc+hgXNgrKNfT62K8p0FyfLC9bY6b9F2KNYA8dyMmMAgGCqMSLScvuKpg==",
    "passwordSalt": "gI3yLJLCttMWzkHJ2D3fKIMMKIsoYzsSreTTgEW7dyHZJV30hExJ7fcewPrWmZGHtZ6KjcCLjOwondHj2bsMOSGtLWRsf7y89IILp0foBKZAc8EkQk+JlZ6VBa0ERY5mCYHkZ7EhOPRcx6dd5v3CW08fLsjwOpmCg6IU0l4THCk=",
    "provider": null,
    "__v": 0
});
radarDb.users.insert({
    "_id": ObjectId("5d942f2d280ba50001ab096a"),
    "name":"demo axa ALJ",
    "email":"demo@axa.co.jp",
    "entityList":[ 
        "5d942ee0280ba50001ab0969"
    ],
    "role":"admin",
    "passwordHash":"RwrWlrQa1HCC2JCrjWSoBsOkkaIrjt/xMJdGajHRQmJ5EjGgCUlIW1gmHgpUt1IE4dLK2BO5CxxsGUCh7cK7ow==",
    "passwordSalt":"QA0YcKIQCmNAzz3oQvc3481G9jSCa8XdThDgD8k85HsJBoZxH2ndgkl9dbGtE+kwb0gxHuQ4U/WhwE01K5sVZgvuTqQHgjMpB2+DWP+9vHXd8AcVl8u48LKUgvZfbEaI+D69xRMQJaryi3Do/tU7WUbbAwQ9MO26XlpUabuRU94=",
    "provider":null,
    "__v":0
});
radarDb.users.insert({ 
    "_id": ObjectId("5d942f7c280ba50001ab096b"),
    "name":"demo axa uk",
    "email":"demo@axa.uk",
    "entityList":[ 
       "5d942eca280ba50001ab0968"
    ],
    "role":"admin",
    "passwordHash":"TaJS3ugLBo6O7N6udX1+zEQf34TSRq3dHLhZ8OxWt8WOZfxNtnlBRlORj5Ga7y2IS6y6/4QgQlH/EzbbmVgfDA==",
    "passwordSalt":"q5CLwP3K6WF+rJ7Wpi/XU0kDn57HRrvAAJbi2HbNBAfZinicJ63WTWVJ1Pp+qW7t4+WIp7IFnEqwgVhSltiEpqAwIQJ4PYDXkFS0MI0lQwBLCVTCEZXbQdxbHdzQFqBMIU1/JirZ57nynnX+qCNxGH5zFJNGYtZUkQEGFPClRbg=",
    "provider":null,
    "__v":0
 });
 radarDb.users.insert({ 
    "_id": ObjectId("5d942fc6280ba50001ab096c"),
    "name":"AXA ASIA",
    "email":"demo@axa.asia.com",
    "entityList":[ 
       "5d9422a1280ba50001ab093c"
    ],
    "role":"admin",
    "passwordHash":"gkWlDeKau5SDB2YS1VYgm+O73vxq0N/z+vueKfZ+A+TgHGlc5Yk50eej6LFZtEKVuQrHOhAzRMwSvc4lNNNs6w==",
    "passwordSalt":"z3wv0fJef01KWHCmzgyYsmDX7Vut3+RZS2QnSnxbfWElLMXhRCg45cuF2N6cVkhEjSsc6p/fl6TWKzLzx/vJOHn1zb2nzHBRVekRamMHVZI9BQzfw28mA/z5Dr7zGbLa0nnra1mJxevWcvtNsygdtsghz0MlaZEt0W/ILYD87mU=",
    "provider":null,
    "__v":0
 });
radarDb.technos.insert({
    "_id": ObjectId("5d527d8f13de705049bc298c"),
    "__v": 1,
    "name": "dotnetcore",
    "key": "dotnetcore",
    "category": "frameworks",
    "description": "3.0 is awesome",
    "scope": "",
    "reporter": null,
    "updateDate": new Date()
});
radarDb.technos.insert({ 
    "_id": ObjectId("5d942402280ba50001ab093e"),
    "__v":1,
    "name":"AWS CloudFormation",
    "key":"aws-cloudformation",
    "category":"tools",
    "description":"AWS CloudFormation is a proprietary declarative language to provision AWS infrastructure as code. Handwriting CloudFormation files is often a default approach to bootstrap AWS infrastructure automation. Although this might be a sensible way to start a small project, our teams, and the industry at large, have found that handwritten CloudFormation simply does not scale as the infrastructure grows. Noticeable pitfalls of handwritten CloudFormation files for large projects include poor readability, lack of imperative constructs, limited parameter definition and usage, and lack of type checking. Addressing these shortfalls has led to a rich ecosystem of both open-source and custom tooling. We find Terraform a sensible default that not only addresses shortfalls of CloudFormation but also has an active community to add the latest AWS features and fix bugs. In addition to Terraform, you can choose from many other tools and languages, including troposphere, sceptre, Stack Deployment Tool and Pulumi.",
    "scope":"",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({ 
    "_id": ObjectId("5d942456280ba50001ab0940"),
    "__v":1,
    "name":"Kubernetes Operators",
    "key":"kubernetes-operators",
    "category":"tools",
    "description":"We're excited about the impact Kubernetes has had on our industry but also concerned about the operational complexity that comes with it. Keeping a Kubernetes cluster up and running and then managing packages deployed on it requires special skills and time. Operational processes such as upgrades, migrations, backups, among others, can be a full-time job. ",
    "scope":"We think that Kubernetes Operators will play a key role in reducing this complexity. The framework provides a standard mechanism to describe automated operational processes for packages running in a Kubernetes cluster. Although Operators were spearheaded and promoted by RedHat, several community-developed Operators for common open-source packages such as Jaeger, MongoDB and Redis have begun to emerge.",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({ 
    "_id": ObjectId("5d942492280ba50001ab0942"),
    "__v":1,
    "name":"Cage",
    "key":"cage",
    "category":"tools",
    "description":"Cage is an open-source wrapper around Docker Compose that lets you configure and run multiple dependent components as a larger application. It lets you orchestrate the execution of components such as Docker images, service source code from repo, scripts to load datastores and pods, which are containers that run together as a unit. Cage uses the Docker Compose v2 configuration file format. It addresses some of the Docker Compose gaps such as supporting multiple environments, including the dev environment for running a distributed application on the local developer machine and the test environment for running integration tests and production.",
    "scope":"",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({ 
    "_id": ObjectId("5d9424c0280ba50001ab0944"),
    "__v":1,
    "name":"Elasticsearch LTR",
    "key":"elasticsearch-ltr",
    "category":"tools",
    "description":"One of the challenges of search is ensuring the most relevant results for the user appear at the top of the list. This is where learning to rank (LTR) can help. LTR is the process of applying machine learning to rank documents retrieved by a search engine. ",
    "scope":"If you're using Elasticsearch, you can achieve search-relevant ranking with the Elasticsearch LTR plugin. The plugin uses RankLib for generating the models during the training phase. Then, when querying Elasticsearch, you can use this plugin to \"rescore\" the top results. We've used it in a few projects and have been happy with the results. There's also an equivalent LTR solution for Solr users.",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({ 
    "_id": ObjectId("5d9424e9280ba50001ab0946"),
    "__v":1,
    "name":"Terraform",
    "key":"terraform",
    "category":"tools",
    "description":"Terraform, is rapidly becoming a de facto choice for creating and managing cloud infrastructures by writing declarative definitions. The configuration of the servers instantiated by Terraform is usually left to Puppet, Chef or Ansible. We like Terraform because the syntax of its files is quite readable and because it supports a number of cloud providers while making no attempt to provide an artificial abstraction across those providers. The active community will add support for the latest features from most cloud providers. ",
    "scope":"Following our first, more cautious, mention of Terraform almost two years ago, it has seen continued development and has evolved into a stable product with a good ecosystem that has proven its value in our projects. The issue with state file management can now be sidestepped by using what Terraform calls a \"remote state backend.\" We've successfully used AWS S3 for that purpose.",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({ 
    "_id": ObjectId("5d942527280ba50001ab0948"),
    "__v":1,
    "name":"Kubernetes",
    "key":"kubernetes",
    "category":"platforms",
    "description":"Kubernetes is Google's answer to the problem of deploying containers into a cluster of machines, which is becoming an increasingly common scenario. It is not the solution used by Google internally but an open source project that originated at Google and has seen a fair number of external contributions. Docker and Rocket are supported as container formats, and services offered include health management, replication and discovery. A similar solution in this space is Rancher.",
    "scope":"Since we last mentioned Kubernetes in the Radar, it has become the default solution for most of our clients when deploying containers into a cluster of machines. The alternatives didn’t capture as much mindshare, and in some cases our clients are even changing their ‘engine’ to Kubernetes. Kubernetes has become the container orchestration platform of choice for major public cloud platforms, including Microsoft's Azure Container Service and Google Cloud (see the GKE blip). And there are many useful products enriching the fast-growing Kubernetes ecosystem. Platforms that try to hide Kubernetes under an abstraction layer, however, have yet to prove themselves.",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({
    "_id": ObjectId("5d9425fd280ba50001ab094a"),
    "__v":1,
    "name":"Istio",
    "key":"istio",
    "category":"platforms",
    "description":"Istio is becoming the de facto infrastructure to operationalize a microservices ecosystem. Its out-of-the-box implementation of cross-cutting concerns — such as service discovery, service-to-service and origin-to-service security, observability (including telemetry and distributed tracing), rolling releases and resiliency — has been bootstrapping our microservices implementations very quickly. It's the main implementation of the service mesh technique we've been using. We've been enjoying its monthly releases and its continuous improvements with seamless upgrades. ",
    "scope":"We use Istio to bootstrap our projects, starting with observability (tracing and telemetry) and service-to-service security. We're closely watching its improvements to service-to-service authentication everywhere in and outside of the mesh. We'd also like to see Istio establish best practices for configuration files to strike a balance between giving autonomy to service developers and control to the service mesh operators.",
    "reporter":null,
    "updateDate": new Date()
});
radarDb.technos.insert({ 
    "_id": ObjectId("5d942b63280ba50001ab094c"),
    "__v":1,
    "name":"Prophet",
    "key":"prophet",
    "category":"platforms",
    "description":"Even in the era of deep learning, statistical models still play a role in business decision support. Time series models are widely used to forecast inventories, demand, customer traffic, and so on. Hand-crafting these models so that they're robust and flexible has typically been the role of either specialized statisticians or large commercial software vendors. Prophet is an open-source alternative to commercial forecasting packages that can be programmed in R or Python. ",
    "scope":"Facebook claims to use Prophet internally for business forecasting at scale and has made it available as an open-source package for anyone to use. We like that Prophet removes some of the tedium of model construction, maintenance and data manipulation so that human analysts and subject matter experts can focus on doing what they do best.",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({ 
    "_id": ObjectId("5d942b8c280ba50001ab094e"),
    "__v":1,
    "name":"Tendermint",
    "key":"tendermint",
    "category":"platforms",
    "description":"Byzantine fault tolerance (BFT) is one of the fundamental problems in cryptocurrency and blockchain systems. It requires overall system agreement on a single data value in the presence of a number of arbitrary faulty processes, which includes malicious fraud. Tendermint is a BFT state machine replication engine that lets you implement your own blockchain systems. ",
    "scope":"The consensus engine, Tendermint Core, takes over the peer-to-peer communication and consensus part, you just need to implement the rest of the application (e.g., construct transaction and verify cryptographic signature) and communicate with Tendermint Core through ABCI. Some blockchain implementations have already chosen Tendermint as their consensus engine.",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({ 
    "_id": ObjectId("5d942be2280ba50001ab0950"),
    "__v":1,
    "name":"TypeScript",
    "key":"typescript",
    "category":"frameworks",
    "description":"TypeScript, a statically typed language and superset of JavaScript, has become our sensible default. Large-scale projects benefit most from the type safety. Our developers favor its minimal configuration management, well-integrated IDE support and its ability to refactor code safely and gradually adopt types. With its good repository of TypeScript-type definitions at hand, we benefit from all the rich JavaScript libraries while gaining type safety.",
    "scope":"",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({ 
    "_id": ObjectId("5d942c30280ba50001ab0952"),
    "__v":1,
    "name":"Next.js",
    "key":"next.js",
    "category":"frameworks",
    "description":"React.js has revolutionized the way most people write single-page JavaScript applications. Generally, we recommend you use Create React App throughout the application lifecycle so you don't have to configure your setup, builds and packages manually. But some developers will prefer a tool whose initial defaults reflect a sound set of opinions. Next.js is just such an opinionated framework and it is garnering quite a bit of interest among our front-end enthusiasts. ",
    "scope":"Next.js simplifies routing, renders on the server side by default and streamlines dependencies and builds. We're keen to see if it lives up to expectations on our own projects.",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({ 
    "_id": ObjectId("5d942c73280ba50001ab0954"),
    "__v":1,
    "name":"Amazon API Gateway",
    "key":"amazon-api-gateway",
    "category":"platforms",
    "description":"Amazon API Gateway enables developers to expose API services to Internet clients. It offers the usual API gateway features including traffic management, monitoring, authentication and authorization. Our teams have had positive experiences using this service to front AWS Lambda as part of serverless architectures. On the other hand, we have had more challenges using it as a more general purpose gateway to front HTTP/HTTPS endpoints running on EC2—where we have been stymied by a lack of interoperability with VPCs and difficulty in establishing client cert authentication with the gateway. Due to this mixed experience, we would like to advise teams to trial using AWS API Gateway with Lambda but assess suitability when using it in a more general setting.",
    "scope":"",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({ 
    "_id": ObjectId("5d942cad280ba50001ab0956"),
    "__v":1,
    "name":"Angular",
    "key":"angular",
    "category":"frameworks",
    "description":"In previous Radar editions, we've been hesitant to give Angular a strong recommendation because it was essentially a new, and on the whole unexciting, framework, sharing only its name with AngularJS, an older framework we loved in days past. In the meantime, Angular, now in version 5, has improved steadily while providing backward compatibility along the way. Several of our teams have Angular applications in production and reportedly, they like what they see. ",
    "scope":"For this reason, we're moving Angular into the Trial ring in this Radar, to signify that some of our teams now consider it a solid choice. Most of our teams, however, still prefer React, Vue or Ember over Angular.",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({ 
    "_id": ObjectId("5d942d07280ba50001ab0958"),
    "__v":1,
    "name":"Java 8",
    "key":"java-8",
    "category":"frameworks",
    "description":"The team behind Java 8 had to fight two battles: the community forces encouraging forever backwards compatibility (a long hallmark of Java) and the technical challenge of making a deep language change mesh with existing libraries and features. They succeeded on both fronts, breathing new life into the Java Language and placing it on par with other mainstream languages in terms of functional programming features. In particular, Java 8 has excellent syntactic magic that allows seamless interoperability between Lambda blocks, the new higher-order function feature, and SAM (Single Abstract Method) interfaces, the traditional way of passing behavior.",
    "scope":"",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({ 
    "_id": ObjectId("5d942d1a280ba50001ab095a"),
    "__v":1,
    "name":"Lua",
    "key":"lua",
    "category":"frameworks",
    "description":"An unlikely contender in the programming languages space, Lua has seen massive adoption across a variety of industries. It is used as a scripting platform in game development and music composition; embedded in point-of-sale appliances and network devices; and in extending NoSQL databases with safe execution semantics. We expect further growth in time to come.",
    "scope":"",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({ 
    "_id": ObjectId("5d942d58280ba50001ab095c"),
    "__v":1,
    "name":"Micro frontends",
    "key":"micro-frontends",
    "category":"practices",
    "description":"We've seen significant benefits from introducing microservices, which have allowed teams to scale the delivery of independently deployed and maintained services. Unfortunately, we've also seen many teams create a frontend monolith — a large, entangled browser application that sits on top of the backend services — largely neutralizing the benefits of microservices. Since we first described micro frontends as a technique to address this issue, we've had almost universally positive experiences with the approach and have found a number of patterns to use micro frontends even as more and more code shifts from the server to the web browser. So far, web components have been elusive in this field, though.",
    "scope":"",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({ 
    "_id": ObjectId("5d942d71280ba50001ab095e"),
    "__v":1,
    "name":"Chaos Engineering",
    "key":"chaos-engineering",
    "category":"practices",
    "description":"In the last year we've seen Chaos Engineering move from a much talked-about idea to an accepted, mainstream approach to improving and assuring distributed system resilience. As organizations large and small begin to implement Chaos Engineering as an operational process, we're learning how to apply these techniques safely at scale. The approach is definitely not for everyone, and to be effective and safe, it requires organizational support at scale. Industry acceptance and available expertise will definitely increase with the appearance of commercial services such as Gremlin and deployment tools such as Spinnaker implementing some Chaos Engineering tools.",
    "scope":"",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({ 
    "_id": ObjectId("5d942d93280ba50001ab0960"),
    "__v":1,
    "name":"Smart contracts",
    "key":"smart-contracts",
    "category":"practices",
    "description":"The more experience we gain with using distributed ledger technologies (DLTs), the more we encounter the rough edges around the current state of smart contracts. Committing automated, irrefutable, irreversible contracts on ledger sounds great in theory. The problems arise when you consider how to use modern software delivery techniques to developing them, as well as the differences between implementations. Immutable data is one thing, but immutable business logic is something else entirely! It's really important to think about whether to include logic in a smart contract. We've also found very different operational characteristics between different implementations. For example, even though contracts can evolve, different platforms support this evolution to a greater or lesser extent. Our advice is to think long and hard before committing business logic to a smart contract and to weigh the merits of the different platforms before you do.",
    "scope":"",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({ 
    "_id": ObjectId("5d942db4280ba50001ab0962"),
    "__v":1,
    "name":"Release train",
    "key":"release-train",
    "category":"practices",
    "description":"We've seen organizations successfully move from very infrequent releases to a higher cadence by using the release train concept. The release train is a technique for coordinating releases across multiple teams or components that have runtime dependencies. All releases happen on a fixed and reliable schedule regardless of whether all expected features are ready (the train doesn't wait for you — if you miss it you wait for the next one). Although we wholeheartedly endorse discipline around regularly releasing and demoing working software, we've experienced serious drawbacks with the approach over the medium to long term as it reinforces temporal coupling around sequencing of changes and can degrade quality as teams rush to complete features. We prefer to focus on the architectural and organizational approaches necessary to support independent releases. Although the train can be a useful forcing function for speeding up slower teams, we've also seen it as imposing an upper limit on how quickly faster-moving teams can move. We believe that it is a technique that should be approached with a good degree of caution, if at all.",
    "scope":"",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({ 
    "_id": ObjectId("5d942dea280ba50001ab0964"),
    "__v":1,
    "name":"Service mesh",
    "key":"service-mesh",
    "category":"patterns",
    "description":"Service mesh is an approach to operating a secure, fast and reliable microservices ecosystem. It has been an important stepping stone in making it easier to adopt microservices at scale. It offers discovery, security, tracing, monitoring and failure handling. It provides these cross-functional capabilities without the need for a shared asset such as an API gateway or baking libraries into each service. A typical implementation involves lightweight reverse-proxy processes, aka sidecars, deployed alongside each service process in a separate container. Sidecars intercept the inbound and outbound traffic of each service and provide cross-functional capabilities mentioned above. This approach has relieved the distributed service teams from building and updating the capabilities that the mesh offers as code in their services. This has lead to an even easier adoption of polyglot programming in a microservices ecosystem. Our teams have been successfully using this approach with open source projects such as Istio and we will continue to monitor other open service mesh implementations such as Linkerd closely.",
    "scope":"",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.technos.insert({ 
    "_id": ObjectId("5d942e43280ba50001ab0966"),
    "__v":1,
    "name":"F#",
    "key":"f#",
    "category":"frameworks",
    "description":"Microsoft’s F# continues to evolve, with the recent release of F# 3.0 beta. F# is excellent at concisely expressing business and domain logic. Developers trying to achieve explicit business logic within an application may opt to express their domain in F# with the majority of plumbing code in C#.",
    "scope":"",
    "reporter":null,
    "updateDate": new Date()
 });
 radarDb.history.insert({
    "_id":ObjectId("5d942402280ba50001ab093f"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d942402280ba50001ab093e",
    "diff":"{\n  \"Id\": [\n    \"5d942402280ba50001ab093e\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"AWS CloudFormation\"\n  ],\n  \"Key\": [\n    \"aws-cloudformation\"\n  ],\n  \"Category\": [\n    \"tools\"\n  ],\n  \"Description\": [\n    \"AWS CloudFormation is a proprietary declarative language to provision AWS infrastructure as code. Handwriting CloudFormation files is often a default approach to bootstrap AWS infrastructure automation. Although this might be a sensible way to start a small project, our teams, and the industry at large, have found that handwritten CloudFormation simply does not scale as the infrastructure grows. Noticeable pitfalls of handwritten CloudFormation files for large projects include poor readability, lack of imperative constructs, limited parameter definition and usage, and lack of type checking. Addressing these shortfalls has led to a rich ecosystem of both open-source and custom tooling. We find Terraform a sensible default that not only addresses shortfalls of CloudFormation but also has an active community to add the latest AWS features and fix bugs. In addition to Terraform, you can choose from many other tools and languages, including troposphere, sceptre, Stack Deployment Tool and Pulumi.\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:13:54.7397034+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d942456280ba50001ab0941"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d942456280ba50001ab0940",
    "diff":"{\n  \"Id\": [\n    \"5d942456280ba50001ab0940\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"Kubernetes Operators\"\n  ],\n  \"Key\": [\n    \"kubernetes-operators\"\n  ],\n  \"Category\": [\n    \"tools\"\n  ],\n  \"Description\": [\n    \"We're excited about the impact Kubernetes has had on our industry but also concerned about the operational complexity that comes with it. Keeping a Kubernetes cluster up and running and then managing packages deployed on it requires special skills and time. Operational processes such as upgrades, migrations, backups, among others, can be a full-time job. \"\n  ],\n  \"Scope\": [\n    \"We think that Kubernetes Operators will play a key role in reducing this complexity. The framework provides a standard mechanism to describe automated operational processes for packages running in a Kubernetes cluster. Although Operators were spearheaded and promoted by RedHat, several community-developed Operators for common open-source packages such as Jaeger, MongoDB and Redis have begun to emerge.\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:15:18.5477808+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d942492280ba50001ab0943"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d942492280ba50001ab0942",
    "diff":"{\n  \"Id\": [\n    \"5d942492280ba50001ab0942\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"Cage\"\n  ],\n  \"Key\": [\n    \"cage\"\n  ],\n  \"Category\": [\n    \"tools\"\n  ],\n  \"Description\": [\n    \"Cage is an open-source wrapper around Docker Compose that lets you configure and run multiple dependent components as a larger application. It lets you orchestrate the execution of components such as Docker images, service source code from repo, scripts to load datastores and pods, which are containers that run together as a unit. Cage uses the Docker Compose v2 configuration file format. It addresses some of the Docker Compose gaps such as supporting multiple environments, including the dev environment for running a distributed application on the local developer machine and the test environment for running integration tests and production.\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:16:18.9838152+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d9424c0280ba50001ab0945"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d9424c0280ba50001ab0944",
    "diff":"{\n  \"Id\": [\n    \"5d9424c0280ba50001ab0944\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"Elasticsearch LTR\"\n  ],\n  \"Key\": [\n    \"elasticsearch-ltr\"\n  ],\n  \"Category\": [\n    \"tools\"\n  ],\n  \"Description\": [\n    \"One of the challenges of search is ensuring the most relevant results for the user appear at the top of the list. This is where learning to rank (LTR) can help. LTR is the process of applying machine learning to rank documents retrieved by a search engine. \"\n  ],\n  \"Scope\": [\n    \"If you're using Elasticsearch, you can achieve search-relevant ranking with the Elasticsearch LTR plugin. The plugin uses RankLib for generating the models during the training phase. Then, when querying Elasticsearch, you can use this plugin to \\\"rescore\\\" the top results. We've used it in a few projects and have been happy with the results. There's also an equivalent LTR solution for Solr users.\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:17:04.6386569+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d9424e9280ba50001ab0947"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d9424e9280ba50001ab0946",
    "diff":"{\n  \"Id\": [\n    \"5d9424e9280ba50001ab0946\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"Terraform\"\n  ],\n  \"Key\": [\n    \"terraform\"\n  ],\n  \"Category\": [\n    \"tools\"\n  ],\n  \"Description\": [\n    \"Terraform, is rapidly becoming a de facto choice for creating and managing cloud infrastructures by writing declarative definitions. The configuration of the servers instantiated by Terraform is usually left to Puppet, Chef or Ansible. We like Terraform because the syntax of its files is quite readable and because it supports a number of cloud providers while making no attempt to provide an artificial abstraction across those providers. The active community will add support for the latest features from most cloud providers. \"\n  ],\n  \"Scope\": [\n    \"Following our first, more cautious, mention of Terraform almost two years ago, it has seen continued development and has evolved into a stable product with a good ecosystem that has proven its value in our projects. The issue with state file management can now be sidestepped by using what Terraform calls a \\\"remote state backend.\\\" We've successfully used AWS S3 for that purpose.\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:17:45.7568252+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d942527280ba50001ab0949"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d942527280ba50001ab0948",
    "diff":"{\n  \"Id\": [\n    \"5d942527280ba50001ab0948\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"Kubernetes\"\n  ],\n  \"Key\": [\n    \"kubernetes\"\n  ],\n  \"Category\": [\n    \"platforms\"\n  ],\n  \"Description\": [\n    \"Kubernetes is Google's answer to the problem of deploying containers into a cluster of machines, which is becoming an increasingly common scenario. It is not the solution used by Google internally but an open source project that originated at Google and has seen a fair number of external contributions. Docker and Rocket are supported as container formats, and services offered include health management, replication and discovery. A similar solution in this space is Rancher.\"\n  ],\n  \"Scope\": [\n    \"Since we last mentioned Kubernetes in the Radar, it has become the default solution for most of our clients when deploying containers into a cluster of machines. The alternatives didn’t capture as much mindshare, and in some cases our clients are even changing their ‘engine’ to Kubernetes. Kubernetes has become the container orchestration platform of choice for major public cloud platforms, including Microsoft's Azure Container Service and Google Cloud (see the GKE blip). And there are many useful products enriching the fast-growing Kubernetes ecosystem. Platforms that try to hide Kubernetes under an abstraction layer, however, have yet to prove themselves.\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:18:47.736593+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d9425fd280ba50001ab094b"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d9425fd280ba50001ab094a",
    "diff":"{\n  \"Id\": [\n    \"5d9425fd280ba50001ab094a\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"Istio\"\n  ],\n  \"Key\": [\n    \"istio\"\n  ],\n  \"Category\": [\n    \"platforms\"\n  ],\n  \"Description\": [\n    \"Istio is becoming the de facto infrastructure to operationalize a microservices ecosystem. Its out-of-the-box implementation of cross-cutting concerns — such as service discovery, service-to-service and origin-to-service security, observability (including telemetry and distributed tracing), rolling releases and resiliency — has been bootstrapping our microservices implementations very quickly. It's the main implementation of the service mesh technique we've been using. We've been enjoying its monthly releases and its continuous improvements with seamless upgrades. \"\n  ],\n  \"Scope\": [\n    \"We use Istio to bootstrap our projects, starting with observability (tracing and telemetry) and service-to-service security. We're closely watching its improvements to service-to-service authentication everywhere in and outside of the mesh. We'd also like to see Istio establish best practices for configuration files to strike a balance between giving autonomy to service developers and control to the service mesh operators.\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:22:21.3974015+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d942b63280ba50001ab094d"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d942b63280ba50001ab094c",
    "diff":"{\n  \"Id\": [\n    \"5d942b63280ba50001ab094c\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"Prophet\"\n  ],\n  \"Key\": [\n    \"prophet\"\n  ],\n  \"Category\": [\n    \"platforms\"\n  ],\n  \"Description\": [\n    \"Even in the era of deep learning, statistical models still play a role in business decision support. Time series models are widely used to forecast inventories, demand, customer traffic, and so on. Hand-crafting these models so that they're robust and flexible has typically been the role of either specialized statisticians or large commercial software vendors. Prophet is an open-source alternative to commercial forecasting packages that can be programmed in R or Python. \"\n  ],\n  \"Scope\": [\n    \"Facebook claims to use Prophet internally for business forecasting at scale and has made it available as an open-source package for anyone to use. We like that Prophet removes some of the tedium of model construction, maintenance and data manipulation so that human analysts and subject matter experts can focus on doing what they do best.\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:45:23.3894338+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d942b8c280ba50001ab094f"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d942b8c280ba50001ab094e",
    "diff":"{\n  \"Id\": [\n    \"5d942b8c280ba50001ab094e\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"Tendermint\"\n  ],\n  \"Key\": [\n    \"tendermint\"\n  ],\n  \"Category\": [\n    \"platforms\"\n  ],\n  \"Description\": [\n    \"Byzantine fault tolerance (BFT) is one of the fundamental problems in cryptocurrency and blockchain systems. It requires overall system agreement on a single data value in the presence of a number of arbitrary faulty processes, which includes malicious fraud. Tendermint is a BFT state machine replication engine that lets you implement your own blockchain systems. \"\n  ],\n  \"Scope\": [\n    \"The consensus engine, Tendermint Core, takes over the peer-to-peer communication and consensus part, you just need to implement the rest of the application (e.g., construct transaction and verify cryptographic signature) and communicate with Tendermint Core through ABCI. Some blockchain implementations have already chosen Tendermint as their consensus engine.\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:46:04.7386207+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d942be2280ba50001ab0951"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d942be2280ba50001ab0950",
    "diff":"{\n  \"Id\": [\n    \"5d942be2280ba50001ab0950\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"TypeScript\"\n  ],\n  \"Key\": [\n    \"typescript\"\n  ],\n  \"Category\": [\n    \"frameworks\"\n  ],\n  \"Description\": [\n    \"TypeScript, a statically typed language and superset of JavaScript, has become our sensible default. Large-scale projects benefit most from the type safety. Our developers favor its minimal configuration management, well-integrated IDE support and its ability to refactor code safely and gradually adopt types. With its good repository of TypeScript-type definitions at hand, we benefit from all the rich JavaScript libraries while gaining type safety.\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:47:30.8112632+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d942c30280ba50001ab0953"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d942c30280ba50001ab0952",
    "diff":"{\n  \"Id\": [\n    \"5d942c30280ba50001ab0952\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"Next.js\"\n  ],\n  \"Key\": [\n    \"next.js\"\n  ],\n  \"Category\": [\n    \"frameworks\"\n  ],\n  \"Description\": [\n    \"React.js has revolutionized the way most people write single-page JavaScript applications. Generally, we recommend you use Create React App throughout the application lifecycle so you don't have to configure your setup, builds and packages manually. But some developers will prefer a tool whose initial defaults reflect a sound set of opinions. Next.js is just such an opinionated framework and it is garnering quite a bit of interest among our front-end enthusiasts. \"\n  ],\n  \"Scope\": [\n    \"Next.js simplifies routing, renders on the server side by default and streamlines dependencies and builds. We're keen to see if it lives up to expectations on our own projects.\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:48:48.7304357+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d942c73280ba50001ab0955"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d942c73280ba50001ab0954",
    "diff":"{\n  \"Id\": [\n    \"5d942c73280ba50001ab0954\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"Amazon API Gateway\"\n  ],\n  \"Key\": [\n    \"amazon-api-gateway\"\n  ],\n  \"Category\": [\n    \"platforms\"\n  ],\n  \"Description\": [\n    \"Amazon API Gateway enables developers to expose API services to Internet clients. It offers the usual API gateway features including traffic management, monitoring, authentication and authorization. Our teams have had positive experiences using this service to front AWS Lambda as part of serverless architectures. On the other hand, we have had more challenges using it as a more general purpose gateway to front HTTP/HTTPS endpoints running on EC2—where we have been stymied by a lack of interoperability with VPCs and difficulty in establishing client cert authentication with the gateway. Due to this mixed experience, we would like to advise teams to trial using AWS API Gateway with Lambda but assess suitability when using it in a more general setting.\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:49:55.5953299+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d942cad280ba50001ab0957"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d942cad280ba50001ab0956",
    "diff":"{\n  \"Id\": [\n    \"5d942cad280ba50001ab0956\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"Angular\"\n  ],\n  \"Key\": [\n    \"angular\"\n  ],\n  \"Category\": [\n    \"frameworks\"\n  ],\n  \"Description\": [\n    \"In previous Radar editions, we've been hesitant to give Angular a strong recommendation because it was essentially a new, and on the whole unexciting, framework, sharing only its name with AngularJS, an older framework we loved in days past. In the meantime, Angular, now in version 5, has improved steadily while providing backward compatibility along the way. Several of our teams have Angular applications in production and reportedly, they like what they see. \"\n  ],\n  \"Scope\": [\n    \"For this reason, we're moving Angular into the Trial ring in this Radar, to signify that some of our teams now consider it a solid choice. Most of our teams, however, still prefer React, Vue or Ember over Angular.\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:50:53.0247506+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d942d07280ba50001ab0959"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d942d07280ba50001ab0958",
    "diff":"{\n  \"Id\": [\n    \"5d942d07280ba50001ab0958\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"Java 8\"\n  ],\n  \"Key\": [\n    \"java-8\"\n  ],\n  \"Category\": [\n    \"frameworks\"\n  ],\n  \"Description\": [\n    \"The team behind Java 8 had to fight two battles: the community forces encouraging forever backwards compatibility (a long hallmark of Java) and the technical challenge of making a deep language change mesh with existing libraries and features. They succeeded on both fronts, breathing new life into the Java Language and placing it on par with other mainstream languages in terms of functional programming features. In particular, Java 8 has excellent syntactic magic that allows seamless interoperability between Lambda blocks, the new higher-order function feature, and SAM (Single Abstract Method) interfaces, the traditional way of passing behavior.\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:52:23.8559096+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d942d1a280ba50001ab095b"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d942d1a280ba50001ab095a",
    "diff":"{\n  \"Id\": [\n    \"5d942d1a280ba50001ab095a\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"Lua\"\n  ],\n  \"Key\": [\n    \"lua\"\n  ],\n  \"Category\": [\n    \"frameworks\"\n  ],\n  \"Description\": [\n    \"An unlikely contender in the programming languages space, Lua has seen massive adoption across a variety of industries. It is used as a scripting platform in game development and music composition; embedded in point-of-sale appliances and network devices; and in extending NoSQL databases with safe execution semantics. We expect further growth in time to come.\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:52:42.0420542+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d942d58280ba50001ab095d"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d942d58280ba50001ab095c",
    "diff":"{\n  \"Id\": [\n    \"5d942d58280ba50001ab095c\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"Micro frontends\"\n  ],\n  \"Key\": [\n    \"micro-frontends\"\n  ],\n  \"Category\": [\n    \"practices\"\n  ],\n  \"Description\": [\n    \"We've seen significant benefits from introducing microservices, which have allowed teams to scale the delivery of independently deployed and maintained services. Unfortunately, we've also seen many teams create a frontend monolith — a large, entangled browser application that sits on top of the backend services — largely neutralizing the benefits of microservices. Since we first described micro frontends as a technique to address this issue, we've had almost universally positive experiences with the approach and have found a number of patterns to use micro frontends even as more and more code shifts from the server to the web browser. So far, web components have been elusive in this field, though.\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:53:44.1627188+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d942d71280ba50001ab095f"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d942d71280ba50001ab095e",
    "diff":"{\n  \"Id\": [\n    \"5d942d71280ba50001ab095e\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"Chaos Engineering\"\n  ],\n  \"Key\": [\n    \"chaos-engineering\"\n  ],\n  \"Category\": [\n    \"practices\"\n  ],\n  \"Description\": [\n    \"In the last year we've seen Chaos Engineering move from a much talked-about idea to an accepted, mainstream approach to improving and assuring distributed system resilience. As organizations large and small begin to implement Chaos Engineering as an operational process, we're learning how to apply these techniques safely at scale. The approach is definitely not for everyone, and to be effective and safe, it requires organizational support at scale. Industry acceptance and available expertise will definitely increase with the appearance of commercial services such as Gremlin and deployment tools such as Spinnaker implementing some Chaos Engineering tools.\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:54:09.0918807+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d942d93280ba50001ab0961"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d942d93280ba50001ab0960",
    "diff":"{\n  \"Id\": [\n    \"5d942d93280ba50001ab0960\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"Smart contracts\"\n  ],\n  \"Key\": [\n    \"smart-contracts\"\n  ],\n  \"Category\": [\n    \"practices\"\n  ],\n  \"Description\": [\n    \"The more experience we gain with using distributed ledger technologies (DLTs), the more we encounter the rough edges around the current state of smart contracts. Committing automated, irrefutable, irreversible contracts on ledger sounds great in theory. The problems arise when you consider how to use modern software delivery techniques to developing them, as well as the differences between implementations. Immutable data is one thing, but immutable business logic is something else entirely! It's really important to think about whether to include logic in a smart contract. We've also found very different operational characteristics between different implementations. For example, even though contracts can evolve, different platforms support this evolution to a greater or lesser extent. Our advice is to think long and hard before committing business logic to a smart contract and to weigh the merits of the different platforms before you do.\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:54:43.5105361+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d942db4280ba50001ab0963"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d942db4280ba50001ab0962",
    "diff":"{\n  \"Id\": [\n    \"5d942db4280ba50001ab0962\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"Release train\"\n  ],\n  \"Key\": [\n    \"release-train\"\n  ],\n  \"Category\": [\n    \"practices\"\n  ],\n  \"Description\": [\n    \"We've seen organizations successfully move from very infrequent releases to a higher cadence by using the release train concept. The release train is a technique for coordinating releases across multiple teams or components that have runtime dependencies. All releases happen on a fixed and reliable schedule regardless of whether all expected features are ready (the train doesn't wait for you — if you miss it you wait for the next one). Although we wholeheartedly endorse discipline around regularly releasing and demoing working software, we've experienced serious drawbacks with the approach over the medium to long term as it reinforces temporal coupling around sequencing of changes and can degrade quality as teams rush to complete features. We prefer to focus on the architectural and organizational approaches necessary to support independent releases. Although the train can be a useful forcing function for speeding up slower teams, we've also seen it as imposing an upper limit on how quickly faster-moving teams can move. We believe that it is a technique that should be approached with a good degree of caution, if at all.\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:55:16.2314408+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d942dea280ba50001ab0965"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d942dea280ba50001ab0964",
    "diff":"{\n  \"Id\": [\n    \"5d942dea280ba50001ab0964\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"Service mesh\"\n  ],\n  \"Key\": [\n    \"service-mesh\"\n  ],\n  \"Category\": [\n    \"patterns\"\n  ],\n  \"Description\": [\n    \"Service mesh is an approach to operating a secure, fast and reliable microservices ecosystem. It has been an important stepping stone in making it easier to adopt microservices at scale. It offers discovery, security, tracing, monitoring and failure handling. It provides these cross-functional capabilities without the need for a shared asset such as an API gateway or baking libraries into each service. A typical implementation involves lightweight reverse-proxy processes, aka sidecars, deployed alongside each service process in a separate container. Sidecars intercept the inbound and outbound traffic of each service and provide cross-functional capabilities mentioned above. This approach has relieved the distributed service teams from building and updating the capabilities that the mesh offers as code in their services. This has lead to an even easier adoption of polyglot programming in a microservices ecosystem. Our teams have been successfully using this approach with open source projects such as Istio and we will continue to monitor other open service mesh implementations such as Linkerd closely.\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:56:10.1807102+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d942e43280ba50001ab0967"),
    "author":"demo@axa.fr",
    "type":"technology",
    "elementId":"5d942e43280ba50001ab0966",
    "diff":"{\n  \"Id\": [\n    \"5d942e43280ba50001ab0966\"\n  ],\n  \"Version\": [\n    1\n  ],\n  \"Name\": [\n    \"F#\"\n  ],\n  \"Key\": [\n    \"f#\"\n  ],\n  \"Category\": [\n    \"frameworks\"\n  ],\n  \"Description\": [\n    \"Microsoft’s F# continues to evolve, with the recent release of F# 3.0 beta. F# is excellent at concisely expressing business and domain logic. Developers trying to achieve explicit business logic within an application may opt to express their domain in F# with the majority of plumbing code in C#.\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"Reporter\": [\n    null\n  ],\n  \"EntitiesStatus\": [\n    null\n  ],\n  \"GroupStatus\": [\n    null\n  ],\n  \"UpdateDate\": [\n    \"2019-10-02T04:57:39.5099182+00:00\"\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943e29280ba50001ab096e"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943e29280ba50001ab096d",
    "diff":"{\n  \"Id\": [\n    \"5d943e29280ba50001ab096d\"\n  ],\n  \"TechnologyId\": [\n    \"5d942527280ba50001ab0948\"\n  ],\n  \"Status\": [\n    \"Candidate\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943e3a280ba50001ab0970"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943e3a280ba50001ab096f",
    "diff":"{\n  \"Id\": [\n    \"5d943e3a280ba50001ab096f\"\n  ],\n  \"TechnologyId\": [\n    \"5d942492280ba50001ab0942\"\n  ],\n  \"Status\": [\n    \"Out\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943e45280ba50001ab0972"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943e45280ba50001ab0971",
    "diff":"{\n  \"Id\": [\n    \"5d943e45280ba50001ab0971\"\n  ],\n  \"TechnologyId\": [\n    \"5d9424c0280ba50001ab0944\"\n  ],\n  \"Status\": [\n    \"Assess\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943e4d280ba50001ab0974"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943e4d280ba50001ab0973",
    "diff":"{\n  \"Id\": [\n    \"5d943e4d280ba50001ab0973\"\n  ],\n  \"TechnologyId\": [\n    \"5d942c30280ba50001ab0952\"\n  ],\n  \"Status\": [\n    \"Assess\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943e6d280ba50001ab0976"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943e6d280ba50001ab0975",
    "diff":"{\n  \"Id\": [\n    \"5d943e6d280ba50001ab0975\"\n  ],\n  \"TechnologyId\": [\n    \"5d942402280ba50001ab093e\"\n  ],\n  \"Status\": [\n    \"Out\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943e74280ba50001ab0978"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943e74280ba50001ab0977",
    "diff":"{\n  \"Id\": [\n    \"5d943e74280ba50001ab0977\"\n  ],\n  \"TechnologyId\": [\n    \"5d9424e9280ba50001ab0946\"\n  ],\n  \"Status\": [\n    \"Excel\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943e7e280ba50001ab097a"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943e7e280ba50001ab0979",
    "diff":"{\n  \"Id\": [\n    \"5d943e7e280ba50001ab0979\"\n  ],\n  \"TechnologyId\": [\n    \"5d9425fd280ba50001ab094a\"\n  ],\n  \"Status\": [\n    \"Candidate\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943e89280ba50001ab097c"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943e89280ba50001ab097b",
    "diff":"{\n  \"Id\": [\n    \"5d943e89280ba50001ab097b\"\n  ],\n  \"TechnologyId\": [\n    \"5d942b8c280ba50001ab094e\"\n  ],\n  \"Status\": [\n    \"Deprecated\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943e9c280ba50001ab097e"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943e9c280ba50001ab097d",
    "diff":"{\n  \"Id\": [\n    \"5d943e9c280ba50001ab097d\"\n  ],\n  \"TechnologyId\": [\n    \"5d942cad280ba50001ab0956\"\n  ],\n  \"Status\": [\n    \"Reinforce\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943ea4280ba50001ab0980"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943ea4280ba50001ab097f",
    "diff":"{\n  \"Id\": [\n    \"5d943ea4280ba50001ab097f\"\n  ],\n  \"TechnologyId\": [\n    \"5d942d1a280ba50001ab095a\"\n  ],\n  \"Status\": [\n    \"Assess\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943eab280ba50001ab0982"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943eab280ba50001ab0981",
    "diff":"{\n  \"Id\": [\n    \"5d943eab280ba50001ab0981\"\n  ],\n  \"TechnologyId\": [\n    \"5d942be2280ba50001ab0950\"\n  ],\n  \"Status\": [\n    \"Excel\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943eb6280ba50001ab0984"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943eb6280ba50001ab0983",
    "diff":"{\n  \"Id\": [\n    \"5d943eb6280ba50001ab0983\"\n  ],\n  \"TechnologyId\": [\n    \"5d942b63280ba50001ab094c\"\n  ],\n  \"Status\": [\n    \"Deprecated\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943ebe280ba50001ab0986"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943ebe280ba50001ab0985",
    "diff":"{\n  \"Id\": [\n    \"5d943ebe280ba50001ab0985\"\n  ],\n  \"TechnologyId\": [\n    \"5d942d58280ba50001ab095c\"\n  ],\n  \"Status\": [\n    \"Candidate\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943ec5280ba50001ab0988"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943ec5280ba50001ab0987",
    "diff":"{\n  \"Id\": [\n    \"5d943ec5280ba50001ab0987\"\n  ],\n  \"TechnologyId\": [\n    \"5d942d93280ba50001ab0960\"\n  ],\n  \"Status\": [\n    \"Candidate\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943ecf280ba50001ab098a"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943ecf280ba50001ab0989",
    "diff":"{\n  \"Id\": [\n    \"5d943ecf280ba50001ab0989\"\n  ],\n  \"TechnologyId\": [\n    \"5d942e43280ba50001ab0966\"\n  ],\n  \"Status\": [\n    \"Candidate\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943ef6280ba50001ab098c"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943ef6280ba50001ab098b",
    "diff":"{\n  \"Id\": [\n    \"5d943ef6280ba50001ab098b\"\n  ],\n  \"TechnologyId\": [\n    \"5d942d71280ba50001ab095e\"\n  ],\n  \"Status\": [\n    \"Assess\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943efd280ba50001ab098e"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943efd280ba50001ab098d",
    "diff":"{\n  \"Id\": [\n    \"5d943efd280ba50001ab098d\"\n  ],\n  \"TechnologyId\": [\n    \"5d942db4280ba50001ab0962\"\n  ],\n  \"Status\": [\n    \"Candidate\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943f1a280ba50001ab0990"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943f1a280ba50001ab098f",
    "diff":"{\n  \"Id\": [\n    \"5d943f1a280ba50001ab098f\"\n  ],\n  \"TechnologyId\": [\n    \"5d942456280ba50001ab0940\"\n  ],\n  \"Status\": [\n    \"Candidate\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943f22280ba50001ab0992"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943f22280ba50001ab0991",
    "diff":"{\n  \"Id\": [\n    \"5d943f22280ba50001ab0991\"\n  ],\n  \"TechnologyId\": [\n    \"5d942d07280ba50001ab0958\"\n  ],\n  \"Status\": [\n    \"Reinforce\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943f29280ba50001ab0994"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943f29280ba50001ab0993",
    "diff":"{\n  \"Id\": [\n    \"5d943f29280ba50001ab0993\"\n  ],\n  \"TechnologyId\": [\n    \"5d942dea280ba50001ab0964\"\n  ],\n  \"Status\": [\n    \"Reinforce\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });
radarDb.history.insert({
    "_id":ObjectId("5d943f33280ba50001ab0996"),
    "author":"demo@axa.fr",
    "type":"entity-technology",
    "elementId":"5d943f33280ba50001ab0995",
    "diff":"{\n  \"Id\": [\n    \"5d943f33280ba50001ab0995\"\n  ],\n  \"TechnologyId\": [\n    \"5d942c73280ba50001ab0954\"\n  ],\n  \"Status\": [\n    \"Assess\"\n  ],\n  \"Scope\": [\n    \"\"\n  ],\n  \"EntityTechnologyUrls\": [\n    []\n  ]\n}",
    "updateDate": new Date()
 });